複数のタイプで検索しています。返される型の1つに、my_fieldというフィールドがあります。返される他の型には、そのフィールドはありません。私は、用語が存在しない場合はすべての結果を、用語が存在する場合はフィールドの値がTrueの結果のみを必要とします。弾性検索5.4 - 用語が存在する場合に用語でフィルタリングし、用語が存在しない場合にフィルタリングしない
my_fieldのフィルタがクエリスコアに寄与せず、フィルタリングされていれば素晴らしいでしょう。
これは私のものと同じくらいです。あなたが私を助けてくれたら、私は1時間自己鞭毛をします。
(これは、それが間違って使用しないでください!)
body = {
'query': {
'bool': {
'must': {
'multi_match': {
'query': 'pangolin',
'fields': ['_all', '_partials']
}
},
"should": {
"must_not": {
"exists": {
"field": "my_field"
}
}
},
"should": {
'term': {
'my_field': True
}
}
}
}
}
私はboolクエリコンテキストで必須の後に2つの必要があるので、上記は機能しません。 docs https://www.elastic.co/guide/en/elasticsearch/reference/5.4/query-dsl-bool-query.html –