lucene多字段查询

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:表示“或”关系,最终检索结果为所有检索子句的并集。

阅读更多
文章标签: lucene query api
个人分类: 搜索引擎
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭