分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

lucene多条件查询”搜索—BooleanQuery

发布时间:2023-09-06 01:23责任编辑:蔡小小关键词:暂无标签
 ??/** ???* “多条件查询”搜索—BooleanQuery ???* BooleanQuery也是实际开发过程中经常使用的一种Query。 ???* 它其实是一个组合的Query,在使用时可以把各种Query对象添加进去并标明它们之间的逻辑关系。 ???* 在本节中所讨论的所有查询类型都可以使用BooleanQuery综合起来。 ???* BooleanQuery本身来讲是一个布尔子句的容器,它提供了专门的API方法往其中添加子句, ???* 并标明它们之间的关系,以下代码为BooleanQuery提供的用于添加子句的API接口: ???* @throws Exception ???*/ ??@Test ??public void testBooleanQuery()throws Exception{ ?????String searchField="contents"; ?????String q1="xxxxxxxxx"; ?????String q2="oooooooooooooooo"; ?????Query query1=new TermQuery(new Term(searchField,q1)); ?????Query query2=new TermQuery(new Term(searchField,q2)); ?????BooleanQuery.Builder ?builder=new BooleanQuery.Builder(); ?????// ?1.MUST和MUST:取得连个查询子句的交集。 ?????// ?2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。 ?????// 3.SHOULD与MUST_NOT:连用时,功能同MUST和MUST_NOT。 ?????// 4.SHOULD与MUST连用时,结果为MUST子句的检索结果,但是SHOULD可影响排序。 ?????// 5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。 ?????// 6.MUST_NOT和MUST_NOT:无意义,检索无结果。 ?????builder.add(query1, BooleanClause.Occur.MUST); ?????builder.add(query2, BooleanClause.Occur.MUST); ?????BooleanQuery ?booleanQuery=builder.build(); ?????TopDocs hits=is.search(booleanQuery, 10); ?????System.out.println("匹配 "+q1 +"And"+q2+",总共查询到"+hits.totalHits+"个文档"); ?????for(ScoreDoc scoreDoc:hits.scoreDocs){ ????????Document doc=is.doc(scoreDoc.doc); ????????System.out.println(doc.get("fullPath")); ?????} ??}

lucene多条件查询”搜索—BooleanQuery

原文地址:http://www.cnblogs.com/silentmuh/p/7795236.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved