gpt4 book ai didi

java - Lucene:Indexsearcher:java.lang.UnsupportedOperationException

转载 作者:行者123 更新时间:2023-12-01 05:46:50 28 4
gpt4 key购买 nike

我收到以下错误消息java.lang.UnsupportedOperationException

使用Lucene搜索方法:topDocs = searcher.search(booleanQuery, null, 100);

当我尝试使用 MB25 Okapi 搜索的以下实现时 (http://nlp.uned.es/~jperezi/Lucene-BM25)

  booleanQuery.add(new BM25BooleanQuery(current_tags[i], 
"tags",
new StandardAnalyzer()),
BooleanClause.Occur.SHOULD);


searcher = new IndexSearcher(INDEX_DIR);
topDocs = searcher.search(booleanQuery, null, 100);

我使用的是旧版本的 Lucene:Lucene 2.4.1(我无法升级!)

你能帮我理解为什么会出现这样的错误吗?

谢谢

java.lang.UnsupportedOperationException 在 org.apache.lucene.search.Query.createWeight(Query.java:88) 在 org.apache.lucene.search.BooleanQuery$BooleanWeight。(BooleanQuery.java:185) 在 org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:360) 在 org.apache.lucene.search.Query.weight(Query.java:95) 在 org.apache.lucene.search.Searcher.createWeight(Searcher.java:185) 在 org.apache.lucene.search.Searcher.search(Searcher.java:136) 在 NVoting。(NVoting.java:159) 在Main.main(Main.java:8)

更新

BooleanQuery.java

weights.add(c.getQuery().createWeight(searcher));

查询.java

Weight weight = query.createWeight(searcher);

最佳答案

这是正在发生的事情:

BM25BooleanQuery 不支持完整的查询 API,其中包括 createWeight()。虽然您可以使用大多数 Lucene 查询类型作为构建 BooleanQuery 的原子,但 BM25BooleanQuery 的情况并非如此。 BM25BooleanQuery 必须独立存在,使用 BooleanTermQuery-s 作为其构建 block 。

如果您遵循引用的 URL 中“如何使用它”下的说明,查询应该可以正常工作。 AFAIK,当前没有解决方案可以将 Lucene 中的 BM25 查询合并为更大的查询。

请参阅LUCENE-2091LUCENE-2392了解 Lucene 中 BM25 的最新技术。

关于java - Lucene:Indexsearcher:java.lang.UnsupportedOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5718162/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com