gpt4 book ai didi

solr - 向复杂的 SOLR 查询添加日期提升

转载 作者:行者123 更新时间:2023-12-01 01:35:51 25 4
gpt4 key购买 nike

我目前有一个 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”的结果……但它们是所有有效结果。

我想要做的是增加相关性分数,以便最近的结果 float 到顶部,但保留标题、标题、介绍、全文作为公式的一部分。在集合元数据中搜索字符串的最近结果将比仅在链接元数据中的结果更相关……但是“仅链接”最近的结果可能比在搜索字符串中包含搜索字符串的非常旧的结果更相关集合元数据。 (我希望这有点清楚)。

问题是我不知道如何将 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 参数
  • 最佳答案

    退房 http://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_boost_the_score_of_newer_documents
    这是基于 ms函数,它返回两个时间戳/日期之间的毫秒差异,以及 ReciprocalFloatFunction随着传递的值减少而增加。
    由于您使用的是 DisMaxRequestHandler,您可能需要使用 bq 指定您的查询。/bf参数。来自 http://lucene.apache.org/solr/api/org/apache/solr/handler/DisMaxRequestHandler.html :

    bq - (Boost Query) a raw lucene query that will be included in theusers query to influence the score. Ifthis is a BooleanQuery with a defaultboost (1.0f), then the individualclauses will be added directly to themain query. Otherwise, the query willbe included as is. This param can bespecified multiple times, and theboosts are are additive. NOTE: thebehaviour listed above is only ineffect if a single bq paramter isspecified. Hence you can disable it byspecifying an additional, blank, bqparameter.

    bf - (Boost Functions) functions (with optional boosts) that will beincluded in the users query toinfluence the score. Format is:"funcA(arg1,arg2)^1.2funcB(arg3,arg4)^2.2". NOTE:Whitespace is not allowed in thefunction arguments. This param can bespecified multiple times, and thefunctions are additive.

    关于solr - 向复杂的 SOLR 查询添加日期提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2179497/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com