2017-03-17 26 views
0

我是一個初學者的Solr在深水:) 我處理的自定義字段類型下面定義的過濾器扔在更長:應用Solr的過濾器只有當令牌是比X個字符

<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"/> 

之後,定義了一個Stem Filter。

我想只適用於如果令牌比X字符長,這是可能的Solr嗎?

我知道有一個<filter class="solr.LengthFilterFactory" min="2" max="7"/>可用,但它只會切斷不符合條件的單詞,而不是讓它們繞過詞幹。

關於如何解決它的任何想法? 在此先感謝:)

回答

1

Stemmers通常會忽略標記爲關鍵字的文字。

所以,你想添加一個KeywordMarkerFilterFactory到你的連鎖店之前的詞幹。

要標記至少X個字符的單詞,您可以使用參數模式,它採用Java正則表達式。因此,即使是基本的「。{13,}」(匹配任何13個字符或更長)應該可以工作。