私はほとんどluceneに慣れていて、いくつかのクエリを試して表示しようとしています。 私はウェブ全体でグーグルをしましたが、この問題の正しい解決策を見つけることができません。ブール検索のソリューションには、BooleanQuery
luceneクラスがあります。しかし、このクラスは(私が使用している)のLucene 5.3.1で廃止されHereLucene 5.3.xでBooleanQuery Builderを使用するにはどうすればよいですか?
は、これは私のコードの一部です:
public static void searchBooleanQuery(String indexDir, Query query1,
Query query2, Query query3, Query query4) throws IOException {
IndexReader rdr = DirectoryReader.open(FSDirectory.open(Paths.get(indexDir)));
IndexSearcher is = new IndexSearcher(rdr);
BooleanQuery.Builder booleanQuery = new BooleanQuery.Builder();
booleanQuery.add(query1, BooleanClause.Occur.MUST);
booleanQuery.add(query2, BooleanClause.Occur.MUST);
booleanQuery.add(query3, BooleanClause.Occur.MUST);
booleanQuery.add(query4, BooleanClause.Occur.MUST);
}
更新
問題: 私ができますこのクラス(IndexSearcher)の検索メソッドはQuery!によって渡される必要があるため、この表示をしないでくださいBoolean Query
IndexSearcher
オブジェクトです。だから私はこのコードを実行しようとしているとき、それは私にエラーを与える:
TopDocs hits = is.search(booleanQuery,10);
...
あなたの問題は何ですか?あなたはクエリに追加しています。今すぐクエリを構築し、IndexSearcherと共に使用してください。 – user1071777
私は更新で答えました。 @ user1071777 –