13

フィルタリングの両方の条件を満たすjsonを返すことができるクエリを取得しようとしています。「test1」という名前の 1 つのフィールドを含むフィードを持つ応答を取得しようとしていますが、フィールド「test2」も欠落している必要があります。クエリを試してみました

{
 "query": {
  "filtered": {
  "query": {
    "match_all": {}
   },
      "filter": {
         "missing": {
        "field": "test2"
       },
       "exists": {
         "field": "test1"
       }
      }
    }
  } 
}

上記のクエリは、フィールド「test1」を持つすべてのフィールドを返し、フィールド「test2」がないフィードも返します。両方の条件を満たすフィードのみが必要なため、応答を絞り込もうとしています。

4

1 に答える 1

24

bool filterを使用して、2 つ以上のフィルターを組み合わせることができます。

{
  "query": {
    "filtered": {
      "query": {
        "match_all": {}
      },
      "filter": {
        "bool": {
          "must": [{
            "missing": {
              "field": "test2"
            }
          }, {
            "exists": {
              "field": "test1"
            }
          }]
        }
      }
    }
  }
}
于 2013-04-11T12:23:02.293 に答える