首页
编程随笔
Java笔记
Html/Css/Js
Android
后端笔记
服务器搭建
BUG收集
Java异常
Android异常
在线工具
Json格式化
编码/解码
Epub在线编辑
登录
发布文章
个人文章
退出登录
首页
技术教程
BUG收集
在线工具
资源下载
登录
发布文章
退出登录
搜索
当前位置:
首页
-
博客
- 正文
关闭
lucene查询
更新时间:2022-09-05 04:01:34
阅读数:575
发布者:落幕
### 前言: BooleanClause.Occur.SHOULD。必须包含,不能包含,可以包含三种.有以下6种组合: 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:无意义,检索无结果。 ### BooleanQuery 查询状态博客状态为1(有效),博客所有者查询全部文章 ```java BooleanQuery.Builder builder = new BooleanQuery.Builder(); // 状态为1代表所有人可见 builder.add(IntPoint.newExactQuery("status",1), BooleanClause.Occur.SHOULD); if (StringUtils.isNotEmpty(uid)) { // 当前用户可以查询自己隐藏的文章 builder.add(new TermQuery(new Term("uid", uid)), BooleanClause.Occur.SHOULD); } QueryParser queryParser = new QueryParser(); queryParser.addQuery(builder.build(), BooleanClause.Occur.MUST); ``` ### 单个查询 ```java TermQuery query = new TermQuery(new Term("name","博客")); ``` ### 多个关键字查询 ```java //要查找的字符串数组 String [] stringQuery={"str", "str2"}; //待查找字符串对应的字段 String[] fields={"name", "name"}; //Occur.MUST表示对应字段必须有查询值, Occur.MUST_NOT 表示对应字段必须没有查询值 BooleanClause.Occur[] occ={BooleanClause.Occur.SHOULD}; Query statusQuery = MultiFieldQueryParser.parse(stringQuery,fields,occ,new StandardAnalyzer()); ``` ### int查询 ```java // 单个查询 Query query = IntPoint.newExactQuery("status", 1); // 多个查询 Query query2 = IntPoint.newRangeQuery("uid", 1, 10); ```