ElasticSearchでGeo Distance Filterを使用しています。クエリは正常に機能しますが、ドキュメントごとに計算された距離を取得できるかどうか疑問に思っています。たとえば、距離のしきい値を 100 km に設定した場合、各ドキュメントの距離を取得したいと思います。
doc1 : 24 km
<< 100km
doc2 : 12 km
<< 100km
...
これは可能ですか?
ElasticSearchでGeo Distance Filterを使用しています。クエリは正常に機能しますが、ドキュメントごとに計算された距離を取得できるかどうか疑問に思っています。たとえば、距離のしきい値を 100 km に設定した場合、各ドキュメントの距離を取得したいと思います。
doc1 : 24 km
<< 100km
doc2 : 12 km
<< 100km
...
これは可能ですか?
はい、可能だと思いますが、試してみるとうまくいきませんでした (私は RoR gem である Tire を使用しているので、ElasticSearch だけでうまくいくかもしれません)。
この問題を見てください: https://github.com/karmi/tire/issues/169
私はniuage
、そこで同じ質問をしています。
まず、距離でソートする必要があると思います。それなら距離はフィールドにあるはずなのですが、_score
なぜか私には合いませんでした。
私はドキュメントを見て、見つけましたtrack_scores
:
When sorting on a field, scores are not computed.
By setting track_scores to true, scores will still be computed and tracked.
track_scores
そのため、trueに設定して、_score
フィールドを確認することをお勧めします。