2016-07-31 64 views
0

我嘗試從彈性搜索中獲取數據與我在Kibana3儀表板上進行的確切過濾,並且出於某種原因無法使其有意義。Elasticsearch查詢 - 並沒有返回值(當我知道它應該)

這就是我對Kibana(返回文檔): kibana filters

,這是我嘗試對ES運行並沒有得到結果的查詢:

{ 
"query": { 
    "filtered": { 
     "query": { 
      "match_all": {} 
     }, 
     "filter": { 
      "bool" : { 
       "must" : [ 
        { "term" : { "domain_name.raw": "foo.bar" } }, 
        { "term" : { "method": "get" } } 
       ], 
       "should" : { 
        "or" : [ 
          { 
           "term" : { "pathname.raw" : "/xxxxx" } 
          }, 
          { 
           "term" : { "pathname.raw" : "/yyyyy" } 
          }, 
          { 
           "term" : { "pathname.raw" : "/zzzzz" } 
          } 
        ] 
       } 
      } 
     } 
    } 
} 

}

我一直在我的頭上打了幾個小時,無法讓它工作。 當我刪除其中一個必需項(domain_name或方法)時,我確實得到了結果。但後來我不完全是我需要的過濾... 任何想法,我哪裏出錯了?

回答

0

好像你的語法是有點過了,使用should當你不需要使用or,試試這個:

我試圖讓與精確過濾從elasticsearch數據,我有一個Kibana3儀表板,並由於某種原因不能使它有意義。

這就是我對Kibana(返回文檔):kibana過濾器

,這是我嘗試對ES運行並沒有得到結果的查詢:

{ 
    "query": { 
    "filtered": { 
     "query": { 
     "match_all": {} 
     }, 
     "filter": { 
     "bool": { 
      "must": [{ 
      "term": { 
       "domain_name.raw": "foo.bar" 
      } 
      }, { 
      "term": { 
       "method": "get" 
      } 
      }], 
      "should": [{ 
       "term": { 
       "pathname.raw": "/xxxxx" 
       } 
      }, { 
       "term": { 
       "pathname.raw": "/yyyyy" 
       } 
      }, { 
       "term": { 
       "pathname.raw": "/zzzzz" 
       } 
      }] 
      } 
     } 
     } 
    } 
    } 
} 
相關問題