java - 如何使 Lucene 5.5.0 StandardAnalyzer 与 Lucene 2.9.0 StandardAnalyzer 保持一致?

标签 java lucene tokenize

Lucene 5.x 和 2.x 之间 StandardAnalyzer 的默认行为有所不同,例如 that's H&M,使用如下代码:

StandardAnalyzer analyzer = new StandardAnalyzer();
analyzer.tokenStream("text", new StringReader(chunkText));

在 lucene 2.x 中,它标记为:

[that, H&M]

在 lucene 5.x 中,它标记为:

[that's, h, m]

有什么方法可以让 lucene 5.x 对齐 lucene 2.x 结果吗?

最佳答案

回到 Lucene 3,他们更改了 StandardAnalyzer 以实现 Unicode 文本分段,如 UAX #29 中指定的那样。 。如果您希望使用 2.X 中旧的、更简单的分词算法,请改用 ClassicAnalyzer

关于java - 如何使 Lucene 5.5.0 StandardAnalyzer 与 Lucene 2.9.0 StandardAnalyzer 保持一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48637511/

相关文章:

java - 如何在黑莓中创建带有图像的加载 PopScreen?

java - 使用模块时如何修补 package-info.java 文件?

java - 如何限制客户端连接到我的 stomp websocket 处理程序?

C++ 模板尖括号陷阱 - 什么是 C++11 修复?

在 Lucene 中将 n 个单词表达式索引为单个术语

Elasticsearch:使用关键字标记器但不使用停用词对字段进行索引

java - 修复 GridView 中的小图像?

lucene - 通过 WhitespaceAnalyzer 使用停用词

solr - 使用多值位置字段在 solr 中搜索

sql-server - SQL Server 2008 全文搜索 (FTS) 与 Lucene.NET