2015-05-31 59 views
0

我節約了以下標題索引Lucene的文本字段不記號化

doc.add(new TextField(TITLE, "Button",Field.Store.YES)); 

後來,當我搜索它說「butto」,沒有返回。我必須搜索「按鈕」才能找回任何東西。我必須做些什麼才能讓按鈕的任何子字符串都有結果?我使用

StandardAnalyzer analyzer = new StandardAnalyzer(); 

回答

3

StandardAnalyzer剛剛創建爲輸入文本令牌button等,只爲button查詢文檔相匹配。 要搜索按鈕的任何子字符串,您有兩個選項。

在搜索時間,您可以使用其他查詢,例如,一個PrefixQuery或一個WildcardQuery。如果您使用查詢解析器,則可以使用butto?butto*

在索引時間,您可以使用不同的分析器,它發出子串作爲標記,例如EdgeNGramTokenizer,它會根據配置發出[bu, but, butt, butto, button];或NGramTokenizer,這將發出[bu, ut, tt, to, on]等等配置的大小(S)。