I have a use-case of an Ecommerce website. We sell furniture and want our customer to search for different furniture items on our website.
My search procedure is as follow
I combine multiple attributes of a product in a single field during index time. like Product name, color, category, style, SKU etc as a comma separated string.
During search time I perform my search on this specific field.
Let's say a user searches for White Sofa, my search returns alot of whites sofas sorted by relevancy score order by desc.
The result contains White sofas on top, and then Sofa tables, Sofa cushion etc. because it has a word sofa in it. and so on.
Now I want my users to see the White sofas but also I want to let my users see those white sofas who got maximum number of reviews.
When I use function score and other boosting techniques, the higher reviews items gets on top, but now the results are not relevant to my customers query (White Sofa) Now they are seeing products like Sofa tables or cushions on top because those items have high reviews,
How can I handle this in elastic to boost results by reviews but make sure it doesn't effect the relevancy.
you can check it here colemanfurniture . com by doing search
Thanks