Lucene中几种常用的Query
看完图之后在来详细说明一下。
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的更多相关文章
- Java中几种常用数据类型之间转换的方法
Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...
- DotNet中几种常用的加密算法
在.NET项目中,我们较多的使用到加密这个操作.因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要.现在提供几种常用的加密/解密算法. 1.用于文本和Base64编码文本的互 ...
- 【Android 界面效果28】Android应用中五种常用的menu
Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...
- C#中四种常用集合的运用(非常重要)
C#中4个常用的集合 1.ArrayList ArrayList类似于数组,有人也称它为数组列表.ArrayList可以动态维护,而数组的容量是固定的. 它的索引会根据程序的扩展而重新进行分配和调整. ...
- Android中五种常用的menu
Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...
- java 中几种常用数据结构
Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类. 一.几个常用类的区别 1.A ...
- Android UI开发第二十九篇——Android中五种常用的menu(菜单)
Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...
- 二、python 中五种常用的数据类型
一.字符串 单引号定义: str1 = 'hello' 双引号定义: str1 = "hello" 三引号定义:""" 人生苦短, 我用python! ...
- iOS中几种常用的数据存储方式
自己稍微总结了一下下,方便大家查看 1.write直接写入文件的方法 永久保存在磁盘中,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...
随机推荐
- undefined reference to `libiconv_open 无法编译PHP
解决方法:#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz#tar -zxvf libiconv-1.13.1.tar. ...
- 一起来做chrome扩展《可配置的代理》
一.本文主要涉及相关内容: chrome.proxy pacScript browser_action popup localStroage 二.预览 (代理运行截图,图中的代理服务器有防火墙,暂不对 ...
- 如何在spring容器开始后,和销毁前,执行一些操作
转:参考文档:资料链接
- linux cntlm代理的配置
在linux下需要配置代理上网,如yum, wget等.如果直接配置windows下的代理,如下: export http_proxy=http://<proxyIP>:<port& ...
- 关于C#使用Dllimport 导入vc++动态库后网站部署提示 “无法加载 DLL,找不到指定模块”的解决方法。
这次项目需要,做了一个C#写的WebService服务给外部调用,服务内部引用了算法库,本地调试已经通过,现场部署服务时各种提示找不到DLL文件. 第一.如果是包含有32位库在64位服务器系统上运行, ...
- Scala的模式匹配
1.概述 2.程序示例(普通的示例) 3.模式匹配(Array) 4.程序示例(Array) 5.模式匹配(List) 6.程序示例 7.遍历 8.模式匹配(case class) 9.程序示例(传统 ...
- oracle正则表达式的用法
<SPAN style="FONT-SIZE: 18px">Oracle 正则表达式函数-REGEXP_SUBSTR 使用例子 .5个参数 第一个是输入的字符串 第二个 ...
- windows2008吃尽内存的解决办法
最近才用上windows2008,之前一直用的是windows2003,发现系统运行一段时间后,内存吃紧,赶紧打开资源查看器,发现当前运行的程序占有内存都很小,后经查资料,原来是被windows200 ...
- python入门到精通[三]:基础学习(2)
摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...
- C#,C++修改vs文件模板,添加自定义代码版权版本信息
简单型的修改类似该路径下的模板文件即可(vs版本或安装路径不同路径可能不同) C#: 模板参数参考https://msdn.microsoft.com/zh-cn/library/eehb4faa.a ...