How to create nested boolean query with lucene API (a AND (b OR c))?

前端 未结 2 865
深忆病人
深忆病人 2020-12-29 10:05

I have an indexed object with three fields (userId, title, description). I want to find all objects of a specific user where the title OR the description contains a given ke

2条回答
  •  佛祖请我去吃肉
    2020-12-29 10:43

    I think that it will be something like this:

    TermQuery userQuery = new TermQuery(new Term("user_id", u.getId()+""));
    
    BooleanQuery orQuery = new BooleanQuery();
    orQuery.add(new BooleanClause(name_query, Occur.SHOULD));
    orQuery.add(new BooleanClause(desc_query, Occur.SHOULD));
    
    BooleanQuery andQuery = new BooleanQuery();
    andQuery.add(new BooleanClause(userQuery , Occur.MUST));
    andQuery.add(new BooleanClause(orQuery, Occur.MUST));
    

提交回复
热议问题