2017-05-25 31 views
0

我寻找与空间关键字数据,如Solr的查询与空间是不恰当的工作

“伟大的大”

但是从Solr的所有结果都搞砸像一些文件包括大一些文件包括盛大。我不想要伟大和伟大的关键字。我只希望在文档中包含“Great Grand”关键字。

在架构,我让标记者这样

<analyzer type="index"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
</analyzer> 
<analyzer type="query"> 
    <tokenizer class="solr.KeywordTokenizerFactory"/> 
</analyzer> 

我怎么能在Solr的改变搜索组合关键字搜索?

+0

您是否在谈论文档中某处“Great Grand”或“Great Grand”的巨大价值(但“Grand”如何“Great”)?情况重要吗?即是“伟大的”和“伟大的”不同的价值观,如果相匹配,不应该给予一个打击? – MatsLindh

+0

我没有说我需要区分大小写。假设你想要寻找IPad Air。在那种情况下,你只希望该文件是关于IPad Air ..而不是iPad,而不是空气.. –

回答

0

您需要更改字段的索引类型分析器。

它看起来像你正在寻找完全匹配。

同时保留索引和查询类型tokenizerclass="solr.KeywordTokenizerFactory"

重新索引数据并测试相同。

0

要改变短语匹配与edismax的行为(和dismax)处理程序(使用DEFTYPE = edismax得到edismax处理,如果你还没有这样做),你可以改变的qs值(query slop):

qs参数指定使用qf参数明确包含在用户查询字符串中的短语查询允许的倾斜量。如上所述,slop是指为了匹配查询中指定的短语,一个标记需要相对于另一个标记移动的位置的数量。

所以,如果你搜索“产品iPad Air”(带引号),该qs参数告诉Solr的你iPadAir之间允许的距离。

您还可以使用pf2pf3及其附属ps值提高,其中的条款出现接近对方,而不是文件 - 奖金之处在于不带引号只是ipad air的搜索将提供更好的和更相关的结果,为命中彼此靠近将获得更高的排名,同时仍然返回包含“新的ipad,根据新的命名方案命名为Air”的文档仍然会提供点击,但包含iPad和Air的文档将会提供更好的排名。

0

什么是您的默认操作符?这是您的查询/ solrconfig.xml中的q.op或架构中的defaultOperator。