首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr字段:针或q=needle&qf=field不同的结果

Solr字段:针或q=needle&qf=field不同的结果
EN

Stack Overflow用户
提问于 2014-11-08 19:39:31
回答 3查看 40关注 0票数 0

假设我试图在任何字段中搜索“Douglas”。如果我这样做的话:

代码语言:javascript
复制
solr/query?q=Douglas

我收到0个响应,但如果我收到了:

代码语言:javascript
复制
solr/query?q=firstname:Douglas

那么我确实得到了响应,为什么会这样呢?我也尝试过:

代码语言:javascript
复制
solr/query?q=Douglas&qf=firstname

我还是一无所获。如何搜索所有字段?那么我如何“提升”某些字段的相关性呢?例如,如果我搜索Douglas,那么名为Douglas的人应该会出现在他们的描述中包含“Douglas”一词的项目之前。

EN

回答 3

Stack Overflow用户

发布于 2014-11-10 19:07:52

你把两个概念混在一起了。

默认搜索针对一个字段。这是由df (默认字段)参数(而不是qf)定义的字段。所以,solr/query?q=Douglas&df=firstname应该是有效的。Solr示例通常将text字段设置为默认值,并使用copyField指令将其他字段复制到该字段中。这是可行的,但不允许对不同的领域使用不同的分析器。它也不允许根据找到的字段内容进行排名。

如果您想搜索具有不同权重的多个字段,则需要切换到dismax或edismax query parser。然后,使用qf参数来显示要搜索的字段。

您可以在Solr Admin UI中尝试所有这些功能。

票数 0
EN

Stack Overflow用户

发布于 2014-11-10 20:33:30

您必须使用copyfield将字段复制到文本中以使其可搜索。默认情况下,所有想要搜索的字段值都会复制到文本字段中。您必须添加一个herehere形式的复制字段

票数 0
EN

Stack Overflow用户

发布于 2014-11-12 05:25:06

要在查询时添加提升,请执行以下操作:

Q=(名字:道格拉斯)^100或(正文:道格拉斯)^50或(某个字段:道格拉斯)^25

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26816718

复制
相关文章

相似问题

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