0

複数のフィールドを指定してelasticsearchクエリを実行しようとしています。これが私の意図をうまく説明するいくつかの擬似コードです:

"query" : {
  "query_string" : { "query" : "william" }
},
"filter" : {
  "missing" : { "field" : "membership_expires_on" }
},
"filter" : {
  "missing" : { "field" : "gender" }
},
"filter" : {
  "terms" : { "status" : "p"}
},
"filter" : {
  "terms" : { "unit_id" : "4"}
}

これらすべてのフィルターをANDしようとしていますが、elasticsearchのドキュメントから、これらの特定のフィルターを1つのクエリにまとめる方法がわかりません。どんな助けでも大歓迎です!

更新:これが私がこれまでに持っているものです:

{
  "from": 0,
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "missing": {
                "field": "membership_expires_on"
              }
            },
            {
              "term": {
                "status": "p"
              }
            },
            {
              "missing": {
                "field": "gender"
              }
            },
            {
              "term": {
                "unit": "4"
              }
            }
          ]
        }
      },
      "query": {
        "query_string": {
          "query": "william"
        }
      }
    }
  },
  "size": 10
}

しかし、これは結果を返さないので、私は何か間違ったことをしています。配列が内部にあるブールフィルターを違法に使用していますか?

更新2:上記のJSONが実際に有効なクエリであることを確認したので、データ/インデックスに何か問題がある可能性があります。それは別の日の質問になります:-)

4

1 に答える 1

2

BoolFilterを見てください。それは役立つはずです。

于 2012-11-06T10:25:00.290 に答える