インデックスにクエリを実行したいのですが、2 つのフィルターを適用します。1つ目は価格、2つ目は場所です。
var qobject = {
query:{
custom_score:{
query:{
filtered:{
query:{
multi_match:{
query: q,
fields: ['title','description'],
}
},
filter:{
range:{
price: { from: 0, to: max_price }
},
geo_distance:{
'distance': distance + 'mi',
'location':{
lat: lat,
lon: lon
}
}
}
}
},
script: '_score + _source["price"] * 10'
}
}
}
elasticSearchClient.search('products', 'products', qobject)
ご覧のとおり、このクエリ オブジェクトはエラーになります。
ただし、range または geo_distance のいずれかを削除すると、すべて問題ありません! でも両方のフィルターが欲しい…