Tôi mới trong Lucene, tôi đang cố gắng để làm một cái gì đó tìm kiếm như thế nàyLucene "Hoặc Truy vấn"
content="some thext" and (id ="A" or id="B" or id="c")
Tôi thực sự bị mất với điều đó, bạn có thể giúp tôi
Cảm ơn bạn.
Tôi mới trong Lucene, tôi đang cố gắng để làm một cái gì đó tìm kiếm như thế nàyLucene "Hoặc Truy vấn"
content="some thext" and (id ="A" or id="B" or id="c")
Tôi thực sự bị mất với điều đó, bạn có thể giúp tôi
Cảm ơn bạn.
Tôi tin rằng "Nhóm" trong Query Parser Syntax documentation cung cấp câu trả lời:
(jakarta OR apache) AND website
tôi nghi ngờ bạn nên thực hiện khai thác của bạn (and
, or
) chữ hoa. Đồng thời, tôi không nghĩ rằng bạn có thể sử dụng toán tử equals (sử dụng dấu hai chấm).
content:"some thext" AND (id:"A" OR id:"B" OR id:"c")
BooleanQuery mainQuery = new BooleanQuery();
TermQuery contentFilter = new TermQuery(new Term("content", "some text"));
mainQuery.add(contentFilter, BooleanClause.Occur.MUST);
BooleanQuery idFilter = new BooleanQuery();
idFilter.setMinimumNumberShouldMatch(1);
idFilter.add(new TermQuery(new Term("id", A)), BooleanClause.Occur.SHOULD);
idFilter.add(new TermQuery(new Term("id", B)), BooleanClause.Occur.SHOULD);
idFilter.add(new TermQuery(new Term("id", C)), BooleanClause.Occur.SHOULD);
mainQuery.Add(idFilter, BooleanClause.Occur.MUST);
Có vẻ như' moduleFilter' nên được thay đổi thành 'idFilter'. Dù sao +1 cho câu trả lời. – RyuuGan
Giải thích tôi thấy hữu ích (từ Occur javadocs): Đối với một mệnh đề BooleanQuery không có Occur.MUST, một hoặc nhiều mệnh đề Occur.SHOULD phải khớp với một tài liệu cho BooleanQuery để khớp. – Renaud
BooleanQuery bị phản đối ngay bây giờ.
Cú pháp mới trông giống như thế này. (Nên == OR, phải == VÀ)
val searchManager = Search.getSearchManager(cache)
val queryBuilder = searchManager.buildQueryBuilderForClass(classTag[T].runtimeClass).get()
val luceneQuery = queryBuilder.bool()
luceneQuery.should(new TermQuery(new Term("type", "lala"))
luceneQuery.createQuery()
Cảm ơn bạn ... nó rất thành công giúp đỡ của bạn –
bạn có thể đơn giản hóa nó để: 'nội dung: "một số thext" VÀ id :("A" OR "B" HOẶC "c") ' –