Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

When you try to sort by distance in ES, the result usually contains the distance between matches and your search location:

  "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
    ]
  }
]

} The sorting distance is contained in sort field. How do I get sorting distance in Spring Date Elasticsearch 2.1.16, with elasticsearchTemplate?

Here is my code for query: Page<CircleES> resultPage = elasticsearchTemplate.queryForPage(searchQuery, CircleES.class);


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
3.8k views
Welcome To Ask or Share your Answers For Others

1 Answer

To get this information in version 2.1.16 you need to use the method

queryForPage(SearchQuery query, Class<T> clazz, SearchResultMapper mapper)

and provide a custom SearchResultMapper which parses the desired information from the returned data.

Btw, 2.1.16 was released on October 15th, 2018 and is out of support.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...