0

我有一个名为标题的列。我想搜索这个专栏。title:'sport'当我使用像OR 这样的单个单词时没有问题title:"sport"。两者都给出相同数量的记录。

我的问题是当我使用 2 个或更多不带双引号的单词进行搜索时(双引号给出确切的结果 ex: title:"sport education")。

title:'sport education'- 返回不相关的记录(更多标题没有运动或教育字眼)

+title:'sport education'- 为搜索返回相同数量的记录title:'sport' / title:"sport"

我应该怎么做才能使列中至少有任何一个搜索词必须匹配?

注意: Solr 版本 6.3.0

先感谢您!

4

2 回答 2

1

我敢打赌,您正在寻找的是以下参数链:

http://$solr_host:8983/solr/magazines/select&q=sport+education&df=title&q.op=OR

让我为你解密:

  • q=运动+教育。您可以自由使用这种自由形式的查询。
  • df=标题。在这里,您要指定搜索的默认字段。
  • q.op=OR(这是默认值,可以随意省略)。$q将根据$dffieldType 进行标记,子句将通过 OR 连接,如下所示:title:sport OR title:education

有关更多信息,您可以关注通用查询参数查询中的本地参数

于 2016-12-15T10:11:16.570 回答
1

解析后您的查询title:'sport education'将如下所示

title:sport text:education单引号不能用作双引号。

因此education在默认字段中搜索术语df(文本,在 solr-config 文件中检查)

在模式文件中,您可能已经将许多其他字段复制到文本中,copyfield以便获得其他文档(其中包含教育的字段)

您应该指定字段名称以在不同的字段中搜索不同的术语,例如title:sport name:sachin.

在使用双引号的短语查询中,title:"sport education"这将为您提供所有包含标题字段的文档sport education

于 2016-12-15T13:39:42.140 回答