我正在使用Elasticsearch查詢文檔類型,該文檔類型具有可選位置字段。搜索時,如果該字段不存在,應返回這些結果,並對結果進行過濾。在Elasticsearch可選字段上過濾
這似乎是OR過濾器Elasticsearch不會短路,因爲這樣:
"query": {
"filtered": {
"query": {
"match_phrase_prefix": {
"display_name": "SearchQuery"
}
},
"filter": {
"or": [
{
"missing": {
"field": "location"
}
},
{
"geo_distance" : {
"distance" : "20mi",
"location" : {
"lat" : 33.47,
"lon" : -112.07
}
}
}
]
}
無法與「未能找到geo_point場[位置]」。
是否有任何方法在ES中執行此操作(或沿着相同的靜脈)?
謝謝,但仍然給我同樣的錯誤。看起來它試圖執行第二個條款,即使第一個條款匹配。 – Justin
https://www.elastic.co/guide/en/elasticsearch/guide/current/_dealing_with_null_values.html#_missing_query –