我有一个名为title的列。我想搜索这个专栏。使用title:'sport'
或title:"sport"
这样的单个单词时没有问题。两者都给出相同数量的记录。
我的问题是当我用2个或更多单词搜索而没有双引号时(双引号给出了精确的结果ex:title:"sport education"
)。
title:'sport education'
- 返回不相关的记录(更多标题没有运动或教育用语)
+title:'sport education'
- 返回搜索title:'sport' / title:"sport"
的相同记录数。
我应该怎样做以至少在列中必须匹配任何一个搜索词?
注意: Solr版本6.3.0
提前谢谢!
答案 0 :(得分:1)
我打赌你要找的是以下参数链:
http://$solr_host:8983/solr/magazines/select&q=sport+education&df=title&q.op=OR
让我为你解读:
$q
将根据$df
fieldType进行标记,子句将通过OR加入,如下所示:title:sport OR title:education
有关详细信息,您可以关注Common Query Parameters或Local 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
的所有文档。