2016-07-31 5 views
0

私はKibana3ダッシュボードにある正確なフィルタリングとelasticsearchからデータを取得しようとすると、それは意味をなさないことができます。弾性検索クエリ - AND NOT戻り値(私はそれがすべきことを知っているとき)

これは私が(ドキュメントを返す)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" } 
          } 
        ] 
       } 
      } 
     } 
    } 
} 

}

私は数時間、頭を悩ましていて、うまく動作しません。 必須条件の1つ(domain_nameまたはメソッド)のいずれかを削除すると結果が表示されます。しかし、私は正確に私が必要とするフィルタリングではありません... 私はどこに間違っているのですか?

答えて

0

これを試して、あなたの構文は少しオフになっているようshouldを使用しているとき、あなたはorを使用する必要はありませんようだ:

私はKibana3に持って、正確なフィルタリングとelasticsearchからデータを取得しよう何らかの理由でそれが理にかなっているわけではありません。

これは私が(ドキュメントを返す)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" 
       } 
      }] 
      } 
     } 
     } 
    } 
    } 
} 
関連する問題