複数のフィールドを指定して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が実際に有効なクエリであることを確認したので、データ/インデックスに何か問題がある可能性があります。それは別の日の質問になります:-)