apache lucene7.0几种常用的查询条件构造方式
来源:互联网 发布:db2和sqlserver 编辑:程序博客网 时间:2024/06/07 15:23
官方文档:https://lucene.apache.org/core/7_1_0/core/org/apache/lucene/search/package-summary.html#search
1.通过QueryParser构造查询单条件条件
2.通过构造单条件TermQuery
3.通过构造多条件查询MultiFieldQueryParser
4.BooleanQuery 构建多条件查询
6.MultiPhraseQuery 是PhraseQuery 的子类,作用相似
8.PointRangeQuery数字范围查询
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:无意义,检索无结果。
1.通过QueryParser构造查询单条件条件
QueryParser queryParser = new QueryParser("courseName", analyzer);Query query = queryParser.parse("语文的3年级");
2.通过构造单条件TermQuery
Query query = new TermQuery(new Term("courseName", "小学"));
3.通过构造多条件查询MultiFieldQueryParser
String[] queries= {"古诗","古诗二首"};String[] fields = { "courseName", "title" }; Query query = MultiFieldQueryParser.parse(queries, fields, analyzer);
4.BooleanQuery 构建多条件查询
Query query1 = new TermQuery(new Term("title", "语文"));Query query2 = new TermQuery(new Term("courseName", "3年级"));BooleanClause bc1 = new BooleanClause(query1, BooleanClause.Occur.MUST);BooleanClause bc2 = new BooleanClause(query2, BooleanClause.Occur.MUST_NOT);Query query = new BooleanQuery.Builder().add(bc1).add(bc2).build();
5.PhraseQuery 个人感觉主要对英语(类似英语单词之间有空格分开的语言) 有作用,对于中文可能作用不大
PhraseQuery.Builder builder = new PhraseQuery.Builder();//表示组成一个 "hello XXXX word" 的短语区匹配 builder.add(new Term("courseName", "hello"),0); builder.add(new Term("courseName", "word"),2); //假如有一个document "hellow,I zhengzhen word." //表示hellow向右(也可能向右)移动1次以后 "hellow zhengzhen word" 刚好匹配"hello XXXX word" builder.setSlop(1); Query query = builder.build();
6.MultiPhraseQuery 是PhraseQuery 的子类,作用相似
MultiPhraseQuery.Builder b=new MultiPhraseQuery.Builder(); b.add(new Term("title","Unit")).add(new Term("title","1")); b.setSlop(2); Query query =b.build();
7.通配符查询WildcardQuery
//使用通配符查询,*代表0个或多个字母,?代表0个或1个字母。Query query=new WildcardQuery(new Term("title","Unit*"));
8.PointRangeQuery数字范围查询
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:无意义,检索无结果。
阅读全文
0 1
- apache lucene7.0几种常用的查询条件构造方式
- Hibernate的条件查询的几种方式
- Hibernate的条件查询的几种方式
- Hibernate的条件查询的几种方式
- Hibernate的条件查询的几种方式
- Hibernate的条件查询的几种方式
- shell 条件判断的几种方式!
- Hibernate条件查询的两种方式
- mybatis - 条件查询的三种方式
- DTO构造的几种方式
- 构造函数的几种方式
- Apache负载均衡的几种方式
- hibernate模糊查询的几种方式
- hibernate数据查询的几种方式
- 数据库优化查询的几种方式
- Hibernate的几种查询方式
- hibernate 的几种查询方式 一
- hibernate数据查询的几种方式
- win批处理文件--学习笔记
- 来自西弗吉利亚大学li xin整理的CV代码合集
- Java集合框架介绍
- CCF CSP 201403-1 相反数
- Spring JDBC多批次操作
- apache lucene7.0几种常用的查询条件构造方式
- 值得收藏的HTML DOM事件和鼠标键盘事件
- Retrofit2+RxAndroid2进行简单的网络请求
- mysql索引使用解读
- Ajax(异步 JavaScript 和 XML)
- (培训)CMMI项目评估和技术团队效率提升实战培训笔记
- Android四大组件之Activity
- day11多态 接口 和instanceof
- accelerated c++ 0-2