在尝试从 Solr 4.3.0 升级到 Solr 4.4.0 时,我遇到了这个异常:
java.lang.IllegalArgumentException: enablePositionIncrements=false is not supported anymore as of Lucene 4.4 as it can create broken token streams
这导致我这个问题。我需要能够匹配查询,而不管插入的停用词(曾经与 enablePositionIncrements="true" 一起使用)。例如:“foo of the bar”会找到匹配“foo bar”、“foo of bar”和“foo of the bar”的文档。在 4.4.0 中弃用此选项后,我不清楚如何维护相同的功能。
包javadoc添加:
如果选择的分析器过滤了停用词“is”和“the”,那么对于包含字符串“blue is the sky”的文档,只有标记“blue”,“sky”被索引,位置(“sky”) = 3 + 位置(“蓝色”)。现在,短语查询“blue is the sky”会找到该文档,因为相同的分析器会从该查询中过滤相同的停用词。但是短语查询“blue sky”不会找到该文档,因为“blue”和“sky”之间的位置增量仅为 1。
如果此行为不符合应用程序的需要,则需要将查询解析器配置为在生成短语查询时不考虑位置增量。
但是没有提到如何实际配置查询解析器来执行此操作。随着 Solr 迈向 5.0,有谁知道如何处理这个问题?