//省略相同代码
Query query1 = new TermQuery(new Term("title", "美国"));
Query query2 = new TermQuery(new Term("content", "日本"));
BooleanClause bc1 = new BooleanClause(query1, Occur.MUST);
BooleanClause bc2 = new BooleanClause(query2, Occur.MUST_NOT);
BooleanQuery booleanQuery = new BooleanQuery.Builder().add(bc1).add(bc2).build();
//省略相同代码
这个查询的含义是:
查询title字段中包含关键词“美国”并且“content”字段中不包含日本的文档
运行结果
Query:+title:美国 -content:日本
DocID:2
id:3
title:XXXXXXXX
文档评分:0.4893146
DocID:0
id:1
title:XXXXXXXX
文档评分:0.40224567