Java 木瓦过滤器工厂的startOffset必须为非负,内偏移必须为>;=startOffset

Java 木瓦过滤器工厂的startOffset必须为非负,内偏移必须为>;=startOffset,java,solr,lucene,Java,Solr,Lucene,我将lucene 4.4版与以下分析仪一起使用: worddelimeter, patternFilter, synonyms, lowercase, stopwords, kStemFilter, shingle, trimfilter. 分析器按我使用它们的顺序列出。当我尝试添加文档时,出现以下异常: startOffset must be non-negative, and endOffset must be >= startOffset, startOff

我将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中的已知限制/错误。请参阅Rob Muir今天添加了一个补丁,因此Lucene 4.8似乎很幸运。

能否添加详细信息(如发生异常的文件?)也请添加异常的整个堆栈跟踪。就目前而言,这个问题很难解决。