Query rescoring
One of the great features provided by Elasticsearch is the ability to change the ordering of documents after they are returned by a query
. Actually, Elasticsearch does a simple trick-it recalculates the score of top matching documents, so only part of the document in the response is reordered. The reasons why we want to do this can vary. One of the reasons may be performance. For example, calculating target ordering is very costly because scripts are used and we would like to do this on the subset of documents returned by the original query
. You can imagine that rescore
gives us many great opportunities for business use cases. Now, let's look at this functionality and how we can benefit from using it.
What is query rescoring?
Rescoring in Elasticsearch is the process of recalculating the score for a defined number of documents returned by the query
. This means that Elasticsearch first takes N documents for a given query
(or the post_filter
phase) and calculates their score...