Match Score With Spring data elastic search in Spring Boot for a Query Banner

Get Match Score With Spring data elastic search in Spring Boot for a Query

Get Match Score With Spring data elastic search in Spring Boot for a Query

Hi everyone, I am gonna share the scoring and percentage from the es query to order results and show them to the user.

Previously, I was using an elastic search rest-client template to have a search query, but that way I have to do extract score, and list of data with mapping to the required format. The configuration is a little more and complex than using spring data elasticsearch directly. But after looking for a solution to fix some other issue I have, I got the solution for getting a score directly from spring data elasticsearch with a little modification.

Let me share.

I have done with pagination, but you can do normally too by using stream with a list instead. let me know if you want in the comments below, I will add.

Steps to get Match Score Elasticsearch

  1. We create a normal Query like match query
  2. call the bookpage method with a query and pageable parameters
  3. Create a search query with required options
  4. Call the elastic search template query method to modify and extract the response. it is the main point where you get the hit score and total hits.
  5. call additional bookDOFromMap method to get a score and append to DTO.

6. Now you have the score calculated from hit score of each record vs all records.

You can modify the query or scoring logic; by using a function score query with a scoring function for your needs.


I hope it will help, you.

Also, do check out other blog for more tech posts like this.

dmca badge w150 5x1 09 - Get Match Score With Spring data elastic search in Spring Boot for a Query
Default image
Balvinder Singh
Working as a full stack and DevOps in Dehaze.io remotely. He loves to write about technology, tips tricks, and guides. He loves WordPress when not coding he can be seen watching movies playing games or listening to songs.
Articles: 159

Leave a Reply