看完图之后在来详细说明一下。

1、phrasequery是用来查询短语的。注意他只针对英文,对中文并没有什么用处。

  核心用法:

  

@Test
public void test02(){
//新建查询
PhraseQuery query = new PhraseQuery();
//设置分词之间的距离
query.setSlop(1);
//添加前一个和后一个分词
query.add(new Term("content", "management"));
query.add(new Term("content", "comprehension"));
lu.query(query);
}

结果:

一共查询了4
76--评分:0.29177123----ss.txt
77--评分:0.29177123----tt.txt

下面我来详细说明一下上面查询操作

首相我查询的是文章中包含  management  comprehension,并且他们之间还要有一个分词。如下图 【management 】 【and】 【comprehension】

query.setSlop就是设置他们之间隔开几个分词。

2、WildcardQuery

使用如下,wildcardQuery是一个通配符查询方式,你可以用‘?’或者‘*’来进行匹配。下面是查询文件中有java字样的,其中的v用?代替,我们会查询出所有v处为任意字符,其他为ja_a的。

@Test
public void test02(){
//新建查询
/**********WildcardQuery通配符。可以使用'*'或者‘?’**************/
Term term = new Term("content", "ja?a");
Query query = new WildcardQuery(term);
lu.query(query);
}

上面的term如果为

  Term term = new Term("content", "*a");//表示前面不管,只要分词后面有个a就行了

3、RangeQuery  范围查询,我们通常不直接用rangequery而是用NumericRangeQuery ,因为3.5没找到rangequery。齐作用查询数值的一个范围。

后面两个boolean值控制是否包含上下限。

  

/**********RangeQuery范围查询**************/
NumericRangeQuery query= NumericRangeQuery.newFloatRange("filesize", 0.3f, 0.5f, true, true);
/************************/
lu.query(query);

4、 FuzzyQuery模糊查询查询。本质就是你可以写错一个单词。比如你想找java,用了模糊查询,使用jave可以找到。

/**********FuzzyQuery模糊查询查询**************/
Term term = new Term("content", "jave");
FuzzyQuery query = new FuzzyQuery(term);
lu.query(query);

同时,可以手动控制模糊度。

/**********FuzzyQuery模糊查询查询**************/
Term term = new Term("content", "jave");
FuzzyQuery query = new FuzzyQuery(term,0.3f);
lu.query(query);

0.3的时候模糊度就会更加大,查出的数据也会增多。默认不设置的时候为0.5

5、BooleanQuery逻辑查询

主要作用是将查询语句进行是否必须的设置   must为必须,should为不必须

/**********BooleanQuery逻辑查询**************/
BooleanQuery boolQuery = new BooleanQuery();
Query query1 = new TermQuery(new Term("content", "java"));
Query query2 = new TermQuery(new Term("filename", "aa.txt"));
boolQuery.add(query1, Occur.MUST);
boolQuery.add(query2, Occur.MUST);

lu.query(boolQuery);

到这里基本的常用query就算是完了

最新文章

  1. HADOOP安装指南-Ubuntu15.10和hadoop2.7.2
  2. HTML5图形图像处理技术研究
  3. Python之路【第二十二篇】CMDB项目
  4. Spring对 JDBC 的支持,JdbcTemplate类的使用
  5. Unity数据存储路径总结
  6. Linux(Ubuntu)下面SecureCRT 完全破解
  7. 【转】写一个标准宏MIN,这个宏输入两个参数并返回较小的那个。另外当写下least=MIN(*p++,b)时会发生什么
  8. 如何将Java源代码文件的编码从GBK转为UTF-8?
  9. github上的QT源码,必要的时候还是应该看一下,仅凭猜测很容易出错
  10. JavaSE 教程的选择
  11. VerilogHDL可综合设计的注意事项
  12. kubernetes入门(02)kubernetes的架构
  13. 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然
  14. Oracle数据库:ORA-54013错误解决办法
  15. oracle windows 新建用户授权 导出导入bmp文件
  16. C++ QT中自定义控件的简单创建
  17. 【BZOJ2595】 [Wc2008]游览计划
  18. hdu 5438 Ponds(长春网络赛 拓扑+bfs)
  19. React笔记:ref注意事项
  20. 《JAVA8实战》读书笔记之传递方法和传递lambda

热门文章

  1. JQ第二天
  2. shell 条件判断
  3. Android--ListView与数据绑定(Xamarin)
  4. C#程序以管理员权限运行
  5. Sqlserver中 登录用户只能看到自己拥有权限的库
  6. AngularJS基础知识2
  7. Echarts学习笔记之饼图
  8. installing mysql,this may take a few minutes,hold on plz wdcp卡住解决办法
  9. Java 泛型约束
  10. kali driftnet