我正在将 Lucene 从版本 2 迁移到 7.7.1,并在升级 lucene 搜索时遇到以下问题。为 CommonTermsQuery 获取 NoClassDefFoundError,即使它所属的 jar 包含在内(lucene-queries-7.7.1.jar)。你能建议这里缺少什么吗?
错误日志:
_Apr 12, 2019 5:07:29 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path threw
exception [javax.servlet.ServletException: java.lang.NoClassDefFoundError:
org/apache/lucene/queries/CommonTermsQuery] with root cause
java.lang.NoClassDefFoundError: org/apache/lucene/queries/CommonTermsQuery
at org.apache.lucene.search.highlight.WeightedSpanTermExtractor.extract(WeightedSpanTermExtractor.java:149)
at org.apache.lucene.search.highlight.WeightedSpanTermExtractor.extract(WeightedSpanTermExtractor.java:112)
at org.apache.lucene.search.highlight.WeightedSpanTermExtractor.getWeightedSpanTerms(WeightedSpanTermExtractor.java:513)
at org.apache.lucene.search.highlight.QueryScorer.initExtractor(QueryScorer.java:218)
at org.apache.lucene.search.highlight.QueryScorer.init(QueryScorer.java:186)
at org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:201)
at org.apache.lucene.search.highlight.Highlighter.getBestFragments(Highlighter.java:161)
at org.apache.lucene.search.highlight.Highlighter.getBestFragments(Highlighter.java:465)_
代码片段:
...
TokenStream tokenStream = analyzer.tokenStream(searchField.toLowerCase(), new
StringReader(content));
preview = highlighter.getBestFragments(tokenStream, content, 3, "...");
...