Solr查询空间是不正确的工作

时间:2017-05-25 10:27:31

标签: solr

我正在使用空格关键字

搜索数据
  

" 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以搜索组合关键字搜索?

3 个答案:

答案 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您在iPadAir之间允许的距离。

您还可以使用pf2pf3及其附加的ps值来推广条款彼此接近的文档 - 奖励是仅搜索{{没有引号的1}}将提供更好和更相关的结果,因为彼此接近的命中将获得更高的排名,同时仍然返回包含&#34;根据新命名方案命名的新ipad的文档,作为Air&#34 ;仍会给出点击率,但是包含iPad和Air的文档将会提供更好的排名。

答案 2 :(得分:0)

您的默认运营商是什么?它是您的查询/ solrconfig.xml中的q.op或架构中的defaultOperator。