2012-11-29 27 views
0

我目前正在爲Java Elasticsearch創建一個自定義腳本來幫助評分。如果我是用MVEL我只能說在Java中的自定義腳本中獲取距離

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

在java中好像那裏是我可以對文檔中的現場運行沒有(貌似可用)距離函數。我猜這是可以的,因爲如果有的話,我可以使用Haversine距離公式。但是,如果Elasticsearch庫中內置了某些內容,那麼我寧願使用它。

回答

3

轉換爲本地腳本,你的MVEL聲明是這樣的:

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

它也可以檢索緯度的名單和經度爲使用getLats()getLons()方法陣列和使用計算的距離

GeoDistance.PLANE.calculate(lat1, lon1, lat2, lon2, unit) 
+0

並且該字段是lat,lon的數組嗎? – Commander

+1

它會計算到第一個點的距離。 – imotov