【问题标题】:Adding Boost to Score According to Payload of Multivalued Field at Solr根据 Solr 的多值字段的有效负载增加分数
【发布时间】:2013-12-09 06:49:24
【问题描述】:

这是我的情况;

我的架构中有一个名为 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 进行另一次搜索(这是一个完全匹配搜索),如果匹配,我将使用有效负载增加分数。

有什么想法吗?

【问题讨论】:

标签: solr lucene relevance


【解决方案1】:

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

【讨论】:

  • 您使用的是 solr 4.x 吗?我假设你是,几年前我为 solr 3.x 编写了一个有效载荷版本的 edismax,我希望 edismax 的 4.x 版本允许将有效载荷分数添加到总分中。你愿意将你的 edismax 版本开源吗?我不想重新写一遍,而且我可以帮助贡献,我相信其他人也会。
【解决方案2】:

你看过CustomScoreQuery吗?

http://dev.fernandobrito.com/2012/10/building-your-own-lucene-scorer/ 有一个示例说明如何执行此操作

【讨论】:

    【解决方案3】:

    您可以按照这个问题的建议对查询进行提升:How to assign a weight to a term query in Lucene/Solr

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 2018-02-17
      • 2012-07-21
      • 1970-01-01
      相关资源
      最近更新 更多