根据Solr中多值字段的有效载荷在得分中添加Boost



这是我的案例;

我的模式中有一个名为elmo_field的字段。我希望elmo_field应该具有已加载的值。即

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

当用户搜索关键字(即dorothy)时,我想在普通分数上加0.46。如果用户搜索big bird,则应添加0.19,如果用户搜索bird,则应增加0.22(添加有效载荷-或者将添加有效载荷*归一化系数)。

我的意思是,我会在solr模式的其他字段中搜索我的索引。同时,我会在elmo_field上进行另一次搜索(这是一次完全匹配的搜索),如果匹配,我会用有效载荷增加分数。

有什么想法吗?

我已经实现了一个自定义的相似性包装器。对于常见的事情,我使用了DefaultSimilarity。如果一个字段是一个已加载的字段,则使用由我实现的另一个相似性。该相似性类只是忽略有效载荷值。我还实现了一个查询解析器,它是edismax的自定义版本。使用这种方法,我可以将有效负载值添加到文档分数中。

您看过CustomScoreQuery吗?

在http://dev.fernandobrito.com/2012/10/building-your-own-lucene-scorer/

正如这个问题所建议的那样,您可以对查询进行改进:如何在Lucene/Solr 中为术语查询分配权重

或者,您可以尝试使用此处描述的有效载荷:http://searchhub.org/2009/08/05/getting-started-with-payloads/

相关内容

  • 没有找到相关文章

最新更新