Adding Boost to Score According to Payload of Multivalued Field at Solr

混江龙づ霸主 提交于 2019-12-19 19:53:17

问题


Here is my case;

I have a field at my schema named elmo_field. I want that elmo_field should have payloaded values. i.e.

dorothy|0.46  sesame|0.37  big bird|0.19 bird|0.22

When a user searches for a keyword i.e. dorothy I want to add 0.46 to usual score. If user searches for big bird, 0.19 should be added and if user searches for bird, 0.22 should be added (payloads are added - or payloads * normalize coefficient will be added).

I mean I will make a search on my index at my other fields of solr schema. And I will make another search (this one is an exact match search) at elmo_field at same time and if matches something I will increase score with payloads.

Any ideas?


回答1:


I've implemented a custom similarity wrapper. For usual things I've used DefaultSimilarity. If a field is a payloaded field another similarity that is implemented by me is used. That similarity class just ignores payload value. I've also implemented a query parser that is a customized version of edismax. With that approach I could add payload value into the document score.




回答2:


Have you looked at CustomScoreQuery?

There's an example with some explanation how to do this at http://dev.fernandobrito.com/2012/10/building-your-own-lucene-scorer/




回答3:


You could do a boost on a query as this question suggests: How to assign a weight to a term query in Lucene/Solr

Or you could try using payloads as described here: http://searchhub.org/2009/08/05/getting-started-with-payloads/



来源:https://stackoverflow.com/questions/20177913/adding-boost-to-score-according-to-payload-of-multivalued-field-at-solr

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!