如何使用solr短语
我正在使用solr4.1.0,我正在尝试让常用词短语搜索工作。这意味着在搜索“猫”时,我希望显示包含此短语的文档,但不希望在某个地方或不同字段中显示包含“the”和“cat”的文档 我所拥有的:如何使用solr短语,solr,phrases,Solr,Phrases,我正在使用solr4.1.0,我正在尝试让常用词短语搜索工作。这意味着在搜索“猫”时,我希望显示包含此短语的文档,但不希望在某个地方或不同字段中显示包含“the”和“cat”的文档 我所拥有的: <fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.Stand
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.CommonGramsFilterFactory" words="lang/stopwords.txt" format="snowball" />
<filter class="solr.StopFilterFactory" words="lang/stopwords.txt" format="snowball" enablePositionIncrements="true" />
</analyzer>
</fieldType>
当“正常”字与stopwords.txt中的stopwords组合时,应输出特殊的gram标记。在analyze视图中,这与预期的效果一样,因此“猫”通常被编程为“猫”
我的客户所追求的解决方案是,当查询中的停止词与普通词结合使用时,只有具有这个确切短语(stop-word-2-shingle)的元素才应该匹配。总的默认操作符仍然是和
例如,我有以下字段的文档
结果:文件1、2、3(为方便起见不评分)
结果:文件1
而且是默认的
结果:文件2
跨越多个领域
结果:文件1 因为只有这个字段包含短语“猫”,它在查询过程中以某种方式神奇地出现
reult:[]
因为没有任何文档包含短语“thenice”,算法会将其解释为一个常用词短语
结果:文件1
那么,这是一种现实的做法吗?在将查询传递给solr之前,是否需要进行某种查询预解析?还有其他方法可以达到预期的结果吗?您是否尝试过查询
q=text:“*the cat*”
?您甚至不必使用*,只需查询q=text:“the cat”谢谢,这(以及我在schema.xml中修复的一个bug)至少会产生命中,因此“the cat”会找到“the cat”。现在我看到我必须改变我的问题,因为我的客户真正想要的是稍微不同的东西;)