Solr:先按短语slop排序,然后按日期排序
我有一个Solr(6.2)Demax Select查询,它使用pf(短语字段)和ps(短语slop)Solr:先按短语slop排序,然后按日期排序,solr,Solr,我有一个Solr(6.2)Demax Select查询,它使用pf(短语字段)和ps(短语slop) pf=text^2.2 title^2.2,ps=2 我希望我的查询按照以下算法返回结果: 如果查询的短语存在完全匹配项,则首先返回它们,按日期排序 如果有文档至少包含查询短语中的一个单词,则返回第二个单词,按日期排序 示例数据:文本(括号中最后修改的时间戳) 关于重要人物的故事(2018) 重要人物:文章(2019) 有些人认为这很重要(2020年) 重要新闻(2015) 十年人物(2020
pf=text^2.2 title^2.2,ps=2
我希望我的查询按照以下算法返回结果:
- 关于重要人物的故事(2018)
- 重要人物:文章(2019)
- 有些人认为这很重要(2020年)
- 重要新闻(2015)
- 十年人物(2020年)
- 将查询包装成双引号,并使用
(查询短语slop),这样它可以按需要工作,但忽略了“至少在单词上”部分李>qs
- 使用bq(boost查询),如
李>last\u modified:[NOW/DAY-3个月到NOW/DAY]^20.0
- 使用bf(升压功能),如
李>recip(ms(现在,最后一次修改),3.16e-11,1,1)
- 显式
sort-但它完全忽略分数last\u modified desc
- 使用多重排序
——但第二次排序仅在第一次排序有平局时有效(而且几乎没有平局)score desc,最后一次修改desc
- 增强功能(bf)=
(不得不使用一个巨大的助推数字来激发最近的 结果)recip(ms(现在,上次修改),3.16e-11,1,1)^1500
- 查询字段qf=
“文本^4标题^2”
- 短语字段pf=
“文本^5标题^2”
- 短语Slop ps=4
- 查询短语Slop qs=2
- 最小值应与mm=
(预udocode)匹配len(拆分('\s',查询))+1
“apple dog”或apple或dog
。双引号对于qs参数起作用和强制具有精确短语的结果冒泡是必需的
也许我正在使用的方法有一些调整,任何评论都将不胜感激