【发布时间】:2020-07-21 09:39:38
【问题描述】:
我想使用 Solr 来索引具有术语权重的文档。
Doc1:this(w=0.3) is(w=0.4) the(w=0.1) first(w=0.7) doc(w=0.2)
Doc2:this(w=0.1) is(w=0.2) the(w=0.5) second(w=0.8) doc(w=0.1)
请注意,同一个词的权重对于两个文档可能不同。
索引后,我希望搜索功能在对文档进行评分时考虑这些权重。例如,如果查询是“doc”,我希望 Doc1 获得更高的分数。
这可能吗?
谢谢!
【问题讨论】:
-
你见过the Payload Score Parser吗?另外,请参阅 2017 年 Lucene Solr Revolution 的 Payoads in Solr - 您还可以在 Youtube iirc 上找到演讲。
-
我尝试对 Payload 使用端到端示例,但它不适用于最新的 Solr 版本 8.5.0。是否有一个示例与我在上面需要的与 Solr 8.5.0 一起使用的有效负载做类似的事情?谢谢!
-
请用您尝试过的内容和遇到的问题来扩展您的问题 - 以及根据您的期望没有工作的内容,因为有效负载可能是实现此功能的最简单方法
-
据我了解,Payloads 本身不能作为排名过程中的术语权重。为此需要编写一些额外的代码。我只能在网上找到一个这样的例子:lucidworks.com/post/end-to-end-payload-example-in-solr。我尝试使用最新版本的 Solr (8.5.0) 编译此代码,但它无法编译,因为许多函数/类已被弃用(例如 DefaultSimilarity)。在问题的示例中,我希望 Doc1 中的“this”这个词被“提升”0.3,在 Doc2 中被“提升”0.1,依此类推。谢谢!
-
这不正是Payload Score Parser 试图做的吗?这是您所链接的同一事物的 Solr 版本的实际的、已提交的部分。