我是一名Solr begginer投入深渊:) 我正在处理自定义字段类型,其过滤器定义如下:
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
之后,定义了一个词干过滤器。
我只想在令牌长于X字符时才应用词干,这在Solr中是否可行?
我知道有一个<filter class="solr.LengthFilterFactory" min="2" max="7"/>
可用,但它会切断不符合标准的词语,而不是让它们绕过词干。
关于如何解决它的任何想法? 在此先感谢:)
答案 0 :(得分:1)
词根通常会忽略标记为关键字的字词。
因此,您希望在词干分析器之前向链中添加KeywordMarkerFilterFactory。
要标记至少X个字符的单词,可以使用参数 pattern ,它接受Java正则表达式。所以,即使是基本的东西,如&#34; 。{13,} &#34; (匹配任何13个字符或更长的字符)应该有效。