The solution is to use _score and the date field in the sort. _score as the first sort order and the date field as the secondary sort order.
You can use a simple match query to match by relevance.
Try it.
Data setting:
POST ecom/prod { "name":"iphone 6", "date":"2019-02-10" } POST ecom/prod { "name":"iphone 5", "date":"2019-01-10" } POST ecom/prod { "name":"iphone 6", "date":"2019-02-28" } POST ecom/prod { "name":"6", "date":"2019-03-01" }
Request for relevance and sorting by date:
POST ecommerce/prododuct/_search { "query": { "match": { "name": "iphone 6" } }, "sort": [ { "_score": { "order": "desc" } }, { "date": { "order": "desc" } } ] }
source share