我正在嘗試過濾具有地理距離和字段(如'has_cctv'或'has_instant_bookings')的數據。ElasticSearch使用地理距離過濾
{
"query" : {
"filtered" : {
"filter" : {
"geo_distance": {
"distance": 10000,
"lat_lng": {
"lat": "51.5073509",
"lon": "-0.1277583"
}
}
}
}
}
}
我已經嘗試了許多使用條件的過濾組合,但似乎無法獲得過去的錯誤。例如:
{
"query" : {
"filtered" : {
"filter" : {
"terms": [
{"term": {"has_cctv": 1}}
],
"geo_distance": {
"distance": 10000,
"lat_lng": {
"lat": "51.5073509",
"lon": "-0.1277583"
}
}
}
}
}
}
這給了我'[條款]過濾器不支持查找元素內的[has_cctv]'。這可能是我的查詢問題,或數據存儲方式的問題?
我已經爲單個詞語匹配寫了查詢。如果你有多個條件,你可以寫下布爾查詢,如:「查詢」:{ 「布爾」:{ 「必須」: { 「術語」:{ 「has_cctv」:{ 「值」: 1 } } } ], 「必須」: { 「術語」:{ 「has_instant_bookings」:{ 「值」:1 } }} ] } } –
這下您的評論後解決了,非常感謝你!您可能想要更新原始答案,以便其他遇到類似問題的人可以更清楚地看到答案。 –