0

私は現在、スコアリングを支援するために、Elasticsearch用のカスタムスクリプトをJavaで作成する作業を行っています。私がmvelを使用していた場合、私はただ言うことができます

doc['field_name'].distance(lat, lon)

Javaでは、ドキュメント内のフィールドに対して実行できる(利用可能なように見える)距離関数がないようです。これは大丈夫だと思います。なぜなら、持っていれば、Haversine距離の式を使用できるからです。ただし、Elasticsearchライブラリに何かが組み込まれている場合は、それを使用したいと思います。

4

1 に答える 1

3

ネイティブスクリプトに変換すると、mvelステートメントは次のようになります。

((GeoPointDocFieldData)doc().field("field_name")).distance(lat, lon)

getLats()とメソッドを使用して、緯度と経度のリストを配列として取得し、を使用getLons()して距離を計算することもできます。

GeoDistance.PLANE.calculate(lat1, lon1, lat2, lon2, unit)
于 2012-11-29T19:13:59.797 に答える