StandardTokenizer是否删除标点符号(在Lucene 4.1中)
我只是想从我自己的旧自定义实现回到StandardTokenizer,因为新版本似乎对亚洲语言有更好的支持
但是这个代码除了在incrementToken()上失败,暗示!!!从输出中删除,但看到jflex类我看不到任何表明标点符号被删除的东西,它是否被删除,如果可以,我可以阻止删除它?
Tokenizer tokenizer = new StandardTokenizer(LuceneVersion.LUCENE_VERSION, new StringReader("!!!"));
assertNotNull(tokenizer);
tokenizer.reset();
assertTrue(tokenizer.incrementToken());
答案 0 :(得分:2)
是的,标点符号将被删除(一般来说,它就更复杂了)。您通过令牌化程序后有效提供的字符串为零令牌。 StandardTokenizer
实现UAX #29,因此您可以阅读完整的说明。
这样做是为了将输入分成大致代表单词的标记。既然您希望标点符号以某种方式保留在您的令牌中,我猜测索引词并不是您想要做的事情,因此StandardTokenizer
可能不是一个好的选择。