Lucene 多条件查询

J2EE 码拜 10年前 (2015-04-08) 2212次浏览 0个评论

在Lucene 多条件查询我想实现  条件A and (条件B or 条件C)。请问 BooleanClause.Occur.MUST, BooleanClause.Occur.SHOULD 如何整合。或则是否有其他实现方法。谢谢。

Lucene 多条件查询
好吧,我解决了。
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);

Lucene 多条件查询
40分
BooleanQuery query = new BooleanQuery();
        query.add(B, BooleanClause.Occur.SHOULD);
        query.add(C, BooleanClause.Occur.SHOULD);
        BooleanQuery booleanQuery = new BooleanQuery();
        booleanQuery.add(A, BooleanClause.Occur.MUST);
        booleanQuery.add(query, BooleanClause.Occur.MUST);

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Lucene 多条件查询
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!