在solr中选择不带双引号的2个或更多单词的搜索查询

时间:2016-12-15 04:50:26

标签: select solr solr6

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

我的问题是当我用2个或更多单词搜索而没有双引号时(双引号给出了精确的结果ex:title:"sport education")。

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

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

我应该怎样做以至少在列中必须匹配任何一个搜索词?

注意: Solr版本6.3.0

提前谢谢!

2 个答案:

答案 0 :(得分:1)

我打赌你要找的是以下参数链:

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

让我为你解读:

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

有关详细信息,您可以关注Common Query ParametersLocal Parameters in Queries

答案 1 :(得分:1)

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

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

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

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

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

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