2013-07-23 41 views
0

如何根據模式標記字符串?使用apache標記字符串lucene

例子。在下面的字符串

arg1:aaa,bbb AND arg2:ccc OR arg3:ddd,eee,fff 

首先我要來標記基於AND和OR

所以

Token set 1 arg1:aaa,bbb 

Token set 2 arg2:ccc 

Token set 3 arg3:ddd,eee,fff 

後來我想基於「這些個人令牌集來傳遞給方法和記號化: 「

Token set 1 
Token 1 aaa 
Token 2 bbb 

Token set 2 
Token 1 ccc 

Token set 3 
Token 1 ddd 
Token 2 eee 
Token 3 fff 

如何使用自定義模式使用Lucene進行標記化?

+0

不禁注意到,您的自定義語法看起來很像Lucene查詢,除了可能需要一些括號。這有什麼?或只是偶然? – femtoRgon

+0

沒有。我的應用程序從第三方供應商獲取這種形式的字符串。這是他們的格式,沒有括號。所以我無法控制。 –

回答

1

要執行自定義標記化實現,通常需要實現自己的Tokenizer。需要實施的主要方法是TokenStream.incrementToken()。您可以將Tokenizer合併到Analyzer中。

+0

是的。實現自定義標記器是唯一的選擇。沒有明確的圖書館可用。 –