solr字段特定查询返回整个字段的完全匹配

时间:2015-09-16 06:01:59

标签: solr

我刚开始使用solr,但认为这有点违反直觉。请帮忙。

我的两份文件中有作者=“Rick Riordan”。 当我运行这些查询时:

瑞克

  

=>返回2个文档,好!

作者:瑞克

  

=>没有回报....为什么?

作者:“Rick Riordan”

  

=>返回2个文档....看起来它假定完全匹配。

2 个答案:

答案 0 :(得分:1)

您可以将其用作fieldType。

  

它会做以下事情 -   1.在白色空间生成令牌。这样你就可以搜索单个单词或整个单词。   2.它将删除重复索引,减少索引大小。

<fieldType name="strings" class="solr.TextField" sortMissingLast="true" omitNorms="true">
    <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <!--  <tokenizer class="solr.KeywordTokenizerFactory"/>-->
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
    </analyzer>
</fieldType>

答案 1 :(得分:1)

更改字段作者的字段类型。重新编制索引并尝试搜索相同的内容。

<fieldType>
<analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    </fieldType>

在下面的字段名称

上触发您的查询
q=:author:Rick