http://hi.baidu.com/%B3%BF%D1%F4%C2%FE%B2%BD/blog/item/9478602deaa1cd37349bf7d5.html
我的例子就是2.0的,現在給你的是兩個域,你可以用n個域
BooleanQuery typeNegativeSearch = new BooleanQuery();
QueryParser parser = new QueryParser("contents", new Analyzer());
parser.setDefaultOperator(QueryParser.AND_OPERATOR);
query = parser.parse(queryString);
QueryParser parser2 = new QueryParser("adISELL", new Analyzer());
query2 = parser2.parse("\"2\"");
QueryParser parser3 = new QueryParser("adISELL", new Analyzer());
query3 = parser3.parse("\"2\"");
QueryParser parser4 = new QueryParser("adISELL", new Analyzer());
query4 = parser4.parse("\"2\"");
QueryParser parser4 = new QueryParser("adISELL", new Analyzer());
query4 = parser4.parse("\"2\"");
。。。。
QueryParser parser..n = new QueryParser("adISELL", new Analyzer());
query..n = parser..n.parse("\"2\"");
typeNegativeSearch.add(query,Occur.MUST);
typeNegativeSearch.add(query2,Occur.MUST);
typeNegativeSearch.add(query3,Occur.MUST);
typeNegativeSearch.add(query4,Occur.MUST);
.....
typeNegativeSearch.add(query..n,Occur.MUST);
hits = searcher.search(typeNegativeSearch);
1, 幾種span的querySpanTermQuery:檢索效果完全同TermQuery,但內部會記錄一些位置信息
,供SpanQuery的其它API使用,是其它屬于SpanQuery的Query的基礎。
SpanFirstQuery:查找方式為從Field的內容起始位置開始,在一個固定的寬度內查找所指定的
詞條。
SpanNearQuery:功能類似PharaseQuery。SpanNearQuery查找所匹配的不一定是短語,還有可
能是另一個SpanQuery的查詢結果作為整體考慮,進行嵌套查詢。
SpanOrQuery:把所有SpanQuery查詢結果綜合起來,作為檢索結果。
SpanNotQuery:從第一個SpanQuery查詢結果中,去掉第二個SpanQuery查詢結果,作為檢索結
果。
2, 多條件索引關系
BooleanClause用于表示布爾查詢子句關系的類,包括:BooleanClause.Occur.MUST,
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:表示“或”關系,最終檢索結果為所有檢索子句的并集。