Solr - How to boost score for early matches?

后端 未结 2 1961
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-18 03:32

How can I boost the score for documents in which my query matches a particular field earlier. For example, searching for \"super man\" should give \"super man returns\" a hi

相关标签:
2条回答
  • Check for options @ Ranking-based-on-term-position

    0 讨论(0)
  • 2020-12-18 03:47

    Solved it myself after reading a LOT about this online. What specifically helped me was a reply on nabble which goes like (I used dismax, so explaining that here):

    • Create a separate field named say 'nameString' which stores the value as "_START_ <actual data>"
    • Change the search query to "_START_ <actual query>"
    • Add the new field nameString as one of the fields to look in in the query fields param (qf)
    • While searching use the parameter pf (phrase field) as the new field nameString with a phrase slop of 1 or 2 (lower values would mean stricter searching)

    Your final query params will be something like:

    q=_START_ <actual query>
    defType=dismax
    qf=name nameString /* look in name field as well as nameString field */
    pf=nameString /* phrase field in nameString */
    ps=2 /* phrase slop */
    
    0 讨论(0)
提交回复
热议问题