我'使用solcene的lucene索引一些文件(新闻)。这些文件也有HEADLINE。 现在,我尝试在HEADLINE字段上进行方面搜索,以查找计数最高的字词。 所有这些工作都没有问题,包括停用词列表。 HEADLINE字段是一个多值字段。我使用solr.StandardTokenizerFactory
将这些字段拆分为单个字词(我知道,这不是最佳实践,但它是唯一的方法和它的工作原理)。关于facet-result的保护词?
有时候,标记器拆分了不应该被拆分的术语,如9/11
(它被分成9和11)。所以我决定使用“protword”列表。 “9/11”是这个关键词列表的一部分。但没有改变。
这是从我的schema.xml
<fieldType name="facet_headline" class="solr.TextField" omitNorms="true">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory" protected="protwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
protected="protwords.txt"
/>
</analyzer>
</fieldType>
看面结果的一部分,我看到了很多处理文件“911”分组(刻面)在“9”或“11 “但从来没有”9/11“。
为什么这不起作用?
谢谢。
使用'WhitespaceTokenizer'是一个好主意。我将'splitOnNumerics =“0”'与'WhitespaceTokenizerFactory'结合使用。结果是,“9/11”现在是一个标记,但它不会将“:”与“9/11:”分开(例如)。所以'solr.PatternTokenizerFactory'是替代而不是'WhitespaceTokenizer'。它是除去标点符号的唯一选择吗? –