Neredeyse lucene için yeni ve AND'yi denedim ve bazı sorgular ve bunları görüntülüyorum. Tüm web için googled ettik, Ancak bu soruna doğru çözümü bulamıyorum. Boole sorgu araması için çözümler BooleanQuery
lucene sınıfını içerir. Fakat bu sınıf (i kullanıyorum) Lucene 5.3.1 önerilmiyor HereLucene 5.3.x'te BooleanQuery oluşturucu nasıl kullanılır?
Bu benim kod parçasıdır:
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);
}
Güncelleme
sorun: elimden Bu Boolean Query
görüntülemiyor IndexSearcher
Nesne, Bu sınıfın arama yöntemi (IndexSearcher) bir Sorgu tarafından geçirilmesi gerektiğinden! bana ben bu kodu çalıştırmak çalışıyorum hata veriyor Yani:
TopDocs hits = is.search(booleanQuery,10);
...
Tam olarak sorun nedir? Sorguya iyi para ekliyorsunuz. Şimdi sadece sorguyu oluşturun ve IndexSearcher ile kullanın. – user1071777
Güncelleştirmede yanıtladım. @ user1071777 –