我在这些分析仪上使用的是Lucene 4.4版:

worddelimeter, patternFilter, synonyms, lowercase,
stopwords, kStemFilter, shingle, trimfilter.

分析器按我使用它们的顺序列出。当我尝试添加文档时,出现以下异常:
startOffset must be non-negative, and endOffset must be >= startOffset,
            startOffset=37571,endOffset=37569

仅对于特定文件会发生此异常。但是,当我更改顺序并将stopwords过滤器放在worddelimeter之前时,它可以正常工作。但这不是正确的方法!

为什么会这样呢?在什么情况下一个过滤器可以某种方式更改数据以导致该异常?

最佳答案

不是您,这是WordDelimiterFilter中的已知限制/错误。参见https://issues.apache.org/jira/browse/LUCENE-5111 Rob Muir今天添加了一个补丁,因此您似乎对Lucene 4.8感到幸运。

09-05 11:09