Combine scores of two indexes with different mappings on a common field name


Is it possible to combine scores of two indexes with different mappings on a common field name ?


What do you mean by "combine"?

I mean multiply or add in order to sort only one list of results (product ids).
I'd like to make a search engine with an index with products infos (product id, title, description, category title, category description, ...) and another index with search history and tracking (searched text, nested results [product id, number of times clicked, number of times added to cart]. I'd like to search keywords making one multi search on these two indexes and get one list of products ids by combining scores from the two indexes.
Sorry for broken english.

You can't do join in elasticsearch. So you can't directly do that kind of thing with elasticsearch.

I'm sure @Mark_Harwood has plenty of ideas to solve that kind of use case though. Mark? :slight_smile:

I've seen people attach popular search terms as an extra field on the documents for products that ultimately get clicked *
The measure of the volume of clicks can be expressed by repeating the search terms many times in the field so that Lucene's TF (term frequency) scoring will naturally boost any matches based on the level of repetition.

This text repetition can be wasteful so an interesting issue to keep eyes on is this one where there is a proposal to allow a term to be expressed once but pass a number into Lucene to state how much repetition to (falsely) report there is for the term.

* be careful how you use click data - remember there will be a bias towards people clicking on "page 1" search results.

Thank you gentlemen :slight_smile:

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.