我正在使用空格关键字
搜索数据" Great Grand"
但是所有来自solr的结果都搞砸了,就像包含了一些文件一样,有些文件包括Grand。我不想要Great和Grand关键字。我只希望包括" Great Grand"文档中的关键字。
在架构中,我像这样使用Tokenizer
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
如何更改solr以搜索组合关键字搜索?
答案 0 :(得分:0)
您需要更改字段的索引类型分析器。
看起来你正在寻找完全匹配。
将索引和查询类型tokenizer
保持为class="solr.KeywordTokenizerFactory"
。
重新索引数据并对其进行测试。
答案 1 :(得分:0)
要更改词组匹配与edismax(和dismax)处理程序的行为方式(如果您尚未执行此操作,请使用defType = edismax进行edismax处理),您可以更改qs
的值( query slop):
qs参数指定使用
qf
参数明确包含在用户查询字符串中的词组查询所允许的slop量。如上所述,slop是指一个令牌需要相对于另一个令牌移动的位置数,以匹配查询中指定的短语。
因此,如果您正在寻找&#34; iPad Air&#34; (带引号),qs
参数告诉Solr您在iPad
和Air
之间允许的距离。
您还可以使用pf2
,pf3
及其附加的ps
值来推广条款彼此接近的文档 - 奖励是仅搜索{{没有引号的1}}将提供更好和更相关的结果,因为彼此接近的命中将获得更高的排名,同时仍然返回包含&#34;根据新命名方案命名的新ipad的文档,作为Air&#34 ;仍会给出点击率,但是包含iPad和Air的文档将会提供更好的排名。
答案 2 :(得分:0)
您的默认运营商是什么?它是您的查询/ solrconfig.xml中的q.op或架构中的defaultOperator。