String[] key = new String[]{"printed","nonquery","sql","update","set"};
String[] fields = {fieldName,fieldName,fieldName,fieldName,fieldName};
//声明BooleanClause.Occur[]数组,它表示多个条件之间的关系
BooleanClause.Occur[] flags=new BooleanClause.Occur[]{BooleanClause.Occur.MUST,
BooleanClause.Occur.MUST,BooleanClause.Occur.MUST,BooleanClause.Occur.MUST,
BooleanClause.Occur.MUST};
Query query = MultiFieldQueryParser.parse(Version.LUCENE_46,key, fields, flags, analyzer);
其中:key, fields, flags 一一对应。
BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。有以下6种组合:
1.MUST和MUST:取得连个查询子句的交集。
2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。
3.MUST_NOT和MUST_NOT:无意义,检索无结果。
4.SHOULD与MUST、SHOULD与MUST_NOT:SHOULD与MUST连用时,无意义,结果为MUST子句的检索
结果。与MUST_NOT连用时,功能同MUST。
5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。