1
私は以下の3つのパラメータを持っています。弾性検索どのようにしてマルチマッチングまたはファンクションのいずれかを照会できます
- クエリから地名、説明または空、 LAT
- から場所または空のいずれか緯度、
- LON - の経度いずれ空いているか空いているか
上記のパラメータに基づいて、query
スコアに基づいてitems
のクエリリストを取得し、次にresult
とlat, lon
の間の距離を計算します。
query
とdistance
に基づいてitems
を取得するスクリプトがあります。
{
"query": {
"function_score": {
"query": {
"bool": {
"must": [{
"multi_match" : {
"query": "Lippo",
"fields": [ "name^6", "city^5", "country^4", "position^3", "address_line^2", "description"]
}
}]
}
},
"functions": [
{
"gauss": {
"position": {
"origin": "-6.184652, 106.7518749",
"offset": "2km",
"scale": "10km",
"decay": 0.33
}
}
}
]
}
}
}
しかし、事実は、query
が空の場合、結果はまったくありません。私が望むのは、結果はquery
またはdistance
のいずれかに基づいています。
これを達成するにはどうすればよいですか?どんな提案も感謝しています。
これは、私は最終的に距離を確認するために私の 'functions'を削除し、私のためにそれを行っています..しかし。私は単純な 'query'と' filter'を使って終わりました。ありがとうございます – choz
^^このバージョンも投稿できますか? – kaulmonish