Spring Data Elasticsearch 2.1.16:如何获取排序距离?
Spring Data Elasticsearch 2.1.16: how to get the sorting distance?
当您尝试在 ES 中按距离排序时,结果通常包含匹配项与您的搜索位置之间的距离:
"hits": {
"total": 3,
"max_score": null,
"hits": [
{
"_index": "circle",
"_type": "doc",
"_id": "7",
"_score": null,
"_source": {
"id": 7,
"coordinates": {
"lon": 112.548443,
"lat": 37.780269
}
},
"sort": [
116.39283058047849
]
},
{
"_index": "circle",
"_type": "doc",
"_id": "5",
"_score": null,
"_source": {
"id": 5,
"coordinates": {
"lon": 112.55061,
"lat": 37.779145
}
},
"sort": [
231.9203763747634
]
}
]
}
排序距离包含在 sort
字段中。
如何使用 elasticsearchTemplate 在 Spring Date Elasticsearch 2.1.16 中获取排序距离?
这是我的查询代码: Page<CircleES> resultPage = elasticsearchTemplate.queryForPage(searchQuery, CircleES.class);
要在版本 2.1.16 中获取此信息,您需要使用方法
queryForPage(SearchQuery query, Class<T> clazz, SearchResultMapper mapper)
并提供自定义 SearchResultMapper
从返回的数据中解析所需信息。
顺便说一句,2.1.16 于 2018 年 10 月 15 日发布,现在已不再支持。
当您尝试在 ES 中按距离排序时,结果通常包含匹配项与您的搜索位置之间的距离:
"hits": {
"total": 3,
"max_score": null,
"hits": [
{
"_index": "circle",
"_type": "doc",
"_id": "7",
"_score": null,
"_source": {
"id": 7,
"coordinates": {
"lon": 112.548443,
"lat": 37.780269
}
},
"sort": [
116.39283058047849
]
},
{
"_index": "circle",
"_type": "doc",
"_id": "5",
"_score": null,
"_source": {
"id": 5,
"coordinates": {
"lon": 112.55061,
"lat": 37.779145
}
},
"sort": [
231.9203763747634
]
}
]
}
排序距离包含在 sort
字段中。
如何使用 elasticsearchTemplate 在 Spring Date Elasticsearch 2.1.16 中获取排序距离?
这是我的查询代码: Page<CircleES> resultPage = elasticsearchTemplate.queryForPage(searchQuery, CircleES.class);
要在版本 2.1.16 中获取此信息,您需要使用方法
queryForPage(SearchQuery query, Class<T> clazz, SearchResultMapper mapper)
并提供自定义 SearchResultMapper
从返回的数据中解析所需信息。
顺便说一句,2.1.16 于 2018 年 10 月 15 日发布,现在已不再支持。