【发布时间】:2010-02-01 19:38:27
【问题描述】:
我目前有一个 SOLR 查询,它使用查询 (q)、查询字段 (qf) 和短语字段 (pf) 来检索我想要的结果。一个例子是:
/solr/select
?q=superbowl
&qf=title^3+headline^2+intro+fulltext
&pf=title^3+headline^2+intro+fulltext
&fl=id,title,ts_modified,score
&debugQuery=true
这个想法是“主要项目”的标题和标题可以最好地表明结果是“关于”的,但介绍和全文也提供了一些输入。即,想象一个链接集合,其中集合本身具有元数据(它是什么集合),但每个链接都有它自己的数据(链接标题、概要等)。如果我们搜索“superbowl”,最相关的结果是那些在集合元数据中带有“superbowl”的结果,最不相关的结果是那些在其中一个链接的概要中带有“superbowl”的结果......但它们是所有有效结果。
我想要做的是提高相关性分数,以便最近的结果浮到顶部,但保留标题、标题、简介、全文作为公式的一部分。集合元数据中搜索字符串的最新结果将比仅链接元数据中的结果更相关......但是“仅链接”最近的结果可能比搜索字符串中的非常旧的结果更相关集合元数据。 (我希望这有点清楚)。
问题是我不知道如何将 SOLR 网站上记录的 boost 函数与 qf/pf 字段的使用结合起来。具体...
在 SOLR 网站上,类似以下内容可按日期提升结果:
/solr/select
?q={!boost%20b=$dateboost%20v=$qq}
&dateboost=ord(ts_modified)
&qq=superbowl
&fl=ts_modified,score
&debugQuery=true
但是,我不知道如何将该查询与 qf 和 pf 结合使用。任何建议都将受到欢迎。
多亏了danben的回复,我才想出以下几点:
/solr/select
?q={!boost%20b=$dateboost%20v=$qq%20defType=dismax}
&dateboost=ord(ts_modified)
&qq=superbowl
&qf=title^3+headline^2+intro^2+fulltext
&pf=title^3+headline^2+intro^2+fulltext
&fl=ts_modifieds,score
&debugQuery=true
看起来我遇到的实际问题是:
- 我在 q 参数中留下了空格,而不是在复制/粘贴时转义它们 (%20)
- 我没有在我的 q 参数中包含 defType=dismax,所以它会注意 qf/pf 参数
【问题讨论】:
标签: solr