2013-07-23 42 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

是的。实现自定义标记器是唯一的选择。没有明确的图书馆可用。 –