首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在多个字段中存在增强项时solr中的查询字段增强问题

在多个字段中存在增强项时solr中的查询字段增强问题
EN

Stack Overflow用户
提问于 2019-03-25 09:36:40
回答 2查看 367关注 0票数 0

我在solr有4个字段。为了前夫。Field1, Field2, Field3 and Field4.

我的助推序列就像field1^10, field2^8, field3^7 field4^6

现在,如果我搜索关键字营销,让我们说q=(Field1:("marketing")^10 OR Field2:("marketing")^8 OR Field3:("marketing")^7 OR Field4:("marketing")^6)

requirement :现在根据需求,field1中的营销应该首先出现,这样才能正常工作。

Problem:但是在Field3Field4中出现了一种营销记录,在结果中它出现在第二位,而Field2中包含营销的记录在结果中出现了第三位,这可能是由于评分机制的原因。

解决方案,我需要:无论在多个领域中是否发现,我都要按应用于该领域的顺序显示记录,即在field2中有市场营销的记录应该总是出现在第二位。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-26 09:34:04

@MatsLindh在评论中的答复是适当的解决办法:

然而,您可以尝试增加您的提升,使不同级别之间的差异更大-- field1^100000, field2^10000, field3^1000 field4^100 --这样,在相同内容的情况下,后面的两个字段加起来不会比之前的字段更大。 备注:请注意,分数将受到不仅仅是助推的影响(如发生的次数等)。

票数 1
EN

Stack Overflow用户

发布于 2019-03-26 09:17:24

我可以想出两种解决办法:

  1. 使用qf查询参数--如果您传递字段并在qf参数中引导,而不是q,那么您的查询看起来是这样的:q=marketing&qf="field1^10 field2^8, field3^7 field4^6",那么解析的查询将类似于:max(field1:marketing^10,field2:marketing^8,field3:marketing^7 OR , field4:marketing^6),所以不管它们显示了多少字段,它只占最大值。
  2. 更改助推值,使每个助推值都高于他面前的助推值之和。例如:field4^1field3^2field2^4field1^8,这样任何字段的组合都不会影响排序。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55334845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档