【发布时间】:2014-11-01 12:22:07
【问题描述】:
我想对一个词干的字段进行完全匹配。例如,我的数据有这个值:-“工作中的保姆”
<fieldType name="string_ci_stem" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory"/>
</analyzer>
被索引的文档是“babysitters at work”而不是“babysit at work”。我已经看到 solr 仅在使用关键字Tokenizer 时才停止句子的最后一个单词。
有没有办法将“工作中的保姆”索引为“工作中的保姆”,这样:-
“工作中的保姆” - 返回结果 “保姆工作” - 不返回结果。
任何其他有助于实现结果的 schema.xml 定义?
任何帮助将不胜感激。
编辑:更新问题。
【问题讨论】:
-
很难理解你的问题,但看起来它与停用词有关,与词干无关。
-
@nomoa - 刚刚编辑了问题,我打错了。对困惑感到抱歉。它实际上与停用词无关,因为我没有使用它。
-
好的,IIRC KeywordTokenizer 使用整个输入发出一个标记,因此“Babysitters at work”将被索引为单个标记“babysitters at work”。您应该使用 StandardAnalyzer 来标记空格和其他内容。看:cwiki.apache.org/confluence/display/solr/Tokenizers
标签: solr lucene solr4 stemming