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

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就算是完了

Lucene中几种常用的Query的更多相关文章

  1. Java中几种常用数据类型之间转换的方法

    Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...

  2. DotNet中几种常用的加密算法

    在.NET项目中,我们较多的使用到加密这个操作.因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要.现在提供几种常用的加密/解密算法. 1.用于文本和Base64编码文本的互 ...

  3. 【Android 界面效果28】Android应用中五种常用的menu

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  4. C#中四种常用集合的运用(非常重要)

    C#中4个常用的集合 1.ArrayList ArrayList类似于数组,有人也称它为数组列表.ArrayList可以动态维护,而数组的容量是固定的. 它的索引会根据程序的扩展而重新进行分配和调整. ...

  5. Android中五种常用的menu

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  6. java 中几种常用数据结构

    Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类. 一.几个常用类的区别 1.A ...

  7. Android UI开发第二十九篇——Android中五种常用的menu(菜单)

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  8. 二、python 中五种常用的数据类型

    一.字符串 单引号定义: str1 = 'hello' 双引号定义: str1 = "hello" 三引号定义:""" 人生苦短, 我用python! ...

  9. iOS中几种常用的数据存储方式

    自己稍微总结了一下下,方便大家查看 1.write直接写入文件的方法 永久保存在磁盘中,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...

随机推荐

  1. 通过命令创建vue项目

    环境要求:  安装有 Node.js. vue. vue-cli . 创建项目: vue init webpack projectName 进入项目,下载依赖: npm install 或者 cnpm ...

  2. Intellij 常用技巧-持续更新

    1.快速输入 System.out.println(); sout [TAB] 2.删除Module ctrl+alt+shift+s 调出  Project Structure ,也可点击菜单Fil ...

  3. pdf拆分与合并

    1.引用iTextSharp,用于拆分和合并pdf文件 using iTextSharp.text; using iTextSharp.text.pdf; 2.合并pdf //outMergeFile ...

  4. 关于移动app开发的一些不错的站点

    1. http://www.androiddevtools.cn      Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的A ...

  5. Android四大核心组件之BroadCastReceiver

    实验内容 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销BroadCast 实验要求 实现BroadCast发送和接受 通过BroadCast传递信息 动态注册和注销 ...

  6. 手机APP开发:学JAVA转安卓APP开发是不是很容易?

    成都亿合云商小编为您分享:Android开发是以Java语言为基础的,Android 虽然使用Java 语言作为开发工具,但是在实际开发中发现,还是与Java SDK 有一些不同的地方.Android ...

  7. 通过数据库查看EBS的登录地址

    1. SQL> SELECT home_url FROM icx_parameters; HOME_URL ------------------------------------------- ...

  8. WebForm 页面传值

    一.使用Querystring Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象.如果你想传递一个安全性不是那么太重要或者是 ...

  9. CentOS 7 启动、重启、chkconfig等命令已经合并为systemctl

    CentOS 7系统服务启动.重启.设置服务启动项命令以合并为,systemctl . 现在用service 或/etc/init.d/命令,重启,重新启动,停止等没效果,因为命令合并为systemc ...

  10. [原创]java WEB学习笔记109:Spring学习---spring中事物管理

    博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好 ...