我刚开始使用solr,但认为这有点违反直觉。请帮忙。
我的两份文件中有作者=“Rick Riordan”。 当我运行这些查询时:
瑞克
=>返回2个文档,好!
作者:瑞克
=>没有回报....为什么?
作者:“Rick Riordan”
=>返回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