Я получаю следующее сообщение об ошибке java.lang.UnsupportedOperationException
с методом поиска Lucene: topDocs = searcher.search(booleanQuery, null, 100);
, когда я пытаюсь использовать следующую реализацию MB25 Okapi Search (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..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));
Query.java
Weight weight = query.createWeight(searcher);