StandardTokenizer是否删除标点符号(在Lucene 4.1中)

时间:2014-09-30 19:53:42

标签: java lucene

StandardTokenizer是否删除标点符号(在Lucene 4.1中)

我只是想从我自己的旧自定义实现回到StandardTokenizer,因为新版本似乎对亚洲语言有更好的支持

但是这个代码除了在incrementToken()上失败,暗示!!!从输出中删除,但看到jflex类我看不到任何表明标点符号被删除的东西,它是否被删除,如果可以,我可以阻止删除它?

Tokenizer tokenizer = new StandardTokenizer(LuceneVersion.LUCENE_VERSION, new StringReader("!!!"));
assertNotNull(tokenizer);
tokenizer.reset();
assertTrue(tokenizer.incrementToken());

1 个答案:

答案 0 :(得分:2)

是的,标点符号将被删除(一般来说,它就更复杂了)。您通过令牌化程序后有效提供的字符串为零令牌。 StandardTokenizer实现UAX #29,因此您可以阅读完整的说明。

这样做是为了将输入分成大致代表单词的标记。既然您希望标点符号以某种方式保留在您的令牌中,我猜测索引词并不是您想要做的事情,因此StandardTokenizer可能不是一个好的选择。