I am using Solr-5.0.0. I am searching on a field product_name
.
I need to add some rules to get relevant results.
If I search for a word, if exact match exists , it should come first.
Ex: if I search for laptop
,it should return exact product_name
with laptop first.
If I search for more than one word , it should obey rule 1. along with least word length distanced names come first.
Ex: if I search dell laptop
, it should return Dell laptop first than dell inspiron laptop.
If I search for words it should not return results contains with
or without
words.
Ex: in search laptop bag
, it should not give dell laptop with bag or dell laptop without bag results first.
How can I achieve these rules based search relevant results at query time?
My application is in java, so Java answer is appreciated.
To begin with, you should use the dismax or edismax query parser instead of the default (lucene).
Then you can improve relevancy using different parameters :