1、最近點查詢
官方地址
POST /index/_search
{
"sort": [
{
"_geo_distance": {
"location": {
"lat": 30.77,
"lon": 114.22
},
"order": "asc",
"unit": "km",
"distance_type": "plane"
}
}
]
}
java代碼
import io.searchbox.client.JestClient;
import io.searchbox.core.Search;
import io.searchbox.core.SearchResult;
import org.elasticsearch.common.unit.DistanceUnit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.GeoDistanceSortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
GeoDistanceSortBuilder sortBuilder = SortBuilders.geoDistanceSort("location", "")
.point(30.77, 114.22)
.unit(DistanceUnit.METERS)
.order(SortOrder.ASC);
searchSourceBuilder.sort(sortBuilder);
searchSourceBuilder.from(0);
searchSourceBuilder.size(1);
String query = searchSourceBuilder.toString();
Search search = new Search.Builder(query).addIndex(LccWgsModel.ESINDEX).build();
SearchResult result = jestClient.execute(search);
List<LccWgsModel> dataList = result.getSourceAsObjectList(LccWgsModel.class, true);
System.out.println(dataList.size());
System.out.println(new Gson().toJson(dataList));