Select 查询在 solr 中使用 2 个或更多不带双引号的单词进行搜索

Select query for search with 2 or more words without double quotes in solr

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

我的问题是当我搜索 2 个或更多不带双引号的词时(带双引号给出准确结果例如:title:"sport education")。

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

+title:'sport education'-returns相同条数的搜索title:'sport' / title:"sport".

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

注:Solr版本6.3.0

提前致谢!

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

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

我来为你解读一下:

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

更多信息可以关注Common Query Parameters or Local Parameters in Queries.

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

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

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

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

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

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