Solr.text_general上的精确字符串匹配

时间:2015-07-01 07:12:55

标签: solr lucene solrj solr4

我有以下字符串索引到solr。

<doc>
<field name="key">book self</field> </doc>
<doc>
<field name="key">bookself</field> </doc>
<doc>
<field name="key">my book self</field> </doc>

当我的查询字符串有单词key:“book self”时,我应该只获得第一个doc作为结果而不是第一个和第三个文档。我搜索的时候也一样 key:“self”它应该返回空文档。

请告诉我如何才能达到上述目标。

2 个答案:

答案 0 :(得分:4)

如果您需要完全匹配,则应使用string代替text_general。如果出于某种原因,您确实需要text_general来处理此文档,请使用<copyField/>生成类型为string的第二个字段,然后将其用于完全匹配。

答案 1 :(得分:1)

将字段类型更改为字符串。

确保您拥有以下条目

<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>

不分析StrField类型,但索引/存储。

然后更改字段键的字段类型。

<field name="key" type="string" indexed="true" stored="true"/>