"Lucene中的 Query对象":

检 索前,需要对检索字符串进行分析,这是由queryparser来完成的。为了保证查询的正确性,最好用创建索引文件时同样的分析器。 queryparser解析字符串时,可以指定查询域,实际可以在字符串中指定一个或多个域。例如:“info:电视台 and id:3329”,“info:电视台”,“电视台”,假如不指定默认域,就会在默认域查询。

queryparser调用静态方法parse后会返回query的实例,原子查询。例如:“info:电视台 and id:3329”会返回booleanquery,“info:电视台”或“电视台”会返回phrasequery,“台”会返回termquery。

lucene内建query对象:

termquery:词条查询。通过对某个词条的指定,实现检索索引中存在该词条的所有文档。

booleanquery:布尔查询。lucene中包含逻辑关系:“与”,“或”,“非”的复杂查询,最终都会表示成booleanquery。布尔查询就是一个由多个子句和子句之间组成的布尔逻辑所组成的查询。

rangequery:范围查询。这种范围可以是日期,时间,数字,大小等等。

prefixquery:前缀查询。

phrasequery:短语查询。默认为完全匹配,但可以指定坡度(slop,默认为0)改变范围。比如slop=1,检索短语为“电台”,那么在“电台”中间有一个字的也可以被查找出来,比如“电视台”。

multiphrasequery:多短语查询。

fuquery:模糊查询。模糊查询使用的匹配算法是levenshitein算法。此算法在比较两个字符串时,将动作分

 

此文来自: 马开东博客 转载请注明出处 网址:http://www.makaidong.com

为3种:加一个字母(insert),删一个字母(delete),改变一个字母(substitute)。

wildcardquery:通配符查询。“*”号表示0到多个字符,“?”表示单个字符。

spanquery:跨度查询。此类为抽象类。

spantermquery:检索效果完全同termquery,但内部会记录一些位置信息,供spanquery的其它api使用,是其它属于spanquery的query的基础。

spanfirstquery:查找方式为从field的内容起始位置开始,在一个固定的宽度内查找所指定的词条。

spannearquery:功能类似pharasequery。spannearquery查找所匹配的不一定是短语,还有可能是另一个spanquery的查询结果作为整体考虑,进行嵌套查询。

spanorquery:把所有spanquery查询结果综合起来,作为检索结果。

spannotquery:从第一个spanquery查询结果中,去掉第二个spanquery查询结果,作为检索结果。

booleanclause用于表示布尔查询子句关系的类,包括:booleanclause.occur.must,booleanclause.occur.must_not,booleanclause.occur.should。有以下6种组合:

1.must和must:取得连个查询子句的交集。

2.must和must_not:表示查询结果中不能包含must_not所对应得查询子句的检索结果。

3.must_not和must_not:无意义,检索无结果。

4.should与must、should与must_not:should与must连用时,无意义,结果为must子句的检索结果。与must_not连用时,功能同must。

5.should与should:表示“或”关系,最终检索结果为所有检索子句的并集

Lucene中的 Query对象的更多相关文章

  1. 理解Lucene中的Query

    Query是一个接口,它有很多实现类. QueryParser是Query解析器,用于将一个字符串解析为一个Query对象,这个Query对象可能属于TermQuery,也可能属于PhraseQuer ...

  2. Hibernate中的Query对象查询所有记录

    映射文件,核心文件,实体类,工具类的内容都不变直接看测试方法中的代码: package com.yinfu.test; import java.util.List; import org.hibern ...

  3. 【Lucene3.6.2入门系列】第03节_简述Lucene中常见的搜索功能

    package com.jadyer.lucene; import java.io.File; import java.io.IOException; import java.text.SimpleD ...

  4. Lucene 中自定义排序的实现

    使用Lucene来搜索内容,搜索结果的显示顺序当然是比较重要的.Lucene中Build-in的几个排序定义在大多数情况下是不适合我们使用的.要适合自己的应用程序的场景,就只能自定义排序功能,本节我们 ...

  5. Lucene 中的Tokenizer, TokenFilter学习

      lucene中的TokenStream,TokenFilter之间关系   TokenStream是一个能够在被调用后产生语汇单元序列的类,其中有两个类型:Tokenizer和TokenFilte ...

  6. 《Lucene in Action 第二版》第4章节 学习总结 -- Lucene中的分析

    通过第四章的学习,可以了解lucene的分析过程是怎样的,并且可以学会如何使用lucene内置分析器,以及自定义分析器.下面是具体总结 1. 分析(Analysis)是什么? 在lucene中,分析就 ...

  7. lucene中Field简析

    http://blog.csdn.net/zhaoxiao2008/article/details/14180019 先看一段lucene3代码 Document doc = new Document ...

  8. lucene中创建索引库

    package com.hope.lucene;import org.apache.commons.io.FileUtils;import org.apache.lucene.document.Doc ...

  9. spring data mongodb中,如果对象中的属性不想加入到数据库字段中

    spring data mongodb中,如果对象中的属性不想加入到数据库字段中,可加@Transient注解,声明为透明属性 spring data mongodb 官网帮助文档 http://ww ...

随机推荐

  1. NOIP2005-普及组复赛-第三题-采药

    题目描述 Description 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山 ...

  2. python 进制 转换

    测试用的python源码 ''''' Created on 2014年8月21日 @author: lenovo ''' import binascii import struct def examp ...

  3. 使用gulp构建nodejs,你只需要记住5个函数

    gulp gulp是一个nodejs的streaming构建工具,所谓的streaming大致意思就是把构建流程想成一个个链接的管道(pipe). 为什么要这样做呢? 要解释原因,就不得不提到unix ...

  4. 浅谈C/C++结构体内存分配问题

    .wiz-todo, .wiz-todo-img {width: 16px; height: 16px; cursor: default; padding: 0 10px 0 2px; vertica ...

  5. 获取集合、数组后要判断为空的必要性以及根据构造器创建对象后不是null的证实

    在开发过程中,凡是获取到一个集合对象,在利用或者说遍历这个集合对象之前,都要进行是否为null以及size()>0的判断,但是如果size()>0的话,不是就已经可以说明此集合对象不为nu ...

  6. oracle Database Link

    1 Database Link 的创建: 有两个数据库服务器A/B, 其中A的IP地址为172.20.36.245, 服务器B为本机.服务器B上的数据库实例名为ORCL,在本机上的服务监听配置上有服务 ...

  7. android 复制、粘贴文字

    Android的剪切板(ClipboardManager) 注意:导包的时候 API 11之前: android.text.ClipboardManagerAPI 11之后: android.cont ...

  8. android:layout_weight属性的使用方法总结

    原创文章,转载请注明出处http://www.cnblogs.com/baipengzhan/p/6282826.html android:layout_weight属性可以和其他属性配合使用,产生多 ...

  9. j2ee网站项目首页如何直接使用action

    之前做过一些网站项目,大多数都是首页就是登录,直接进入首页的不多,也就没有注意到,今天刚好注意到了就来记一下.也算是一个小技巧 <welcome-file>index.jsp</we ...

  10. simHash 简介以及java实现

    http://gemantic.iteye.com/blog/1701101 simHash 简介以及java实现 博客分类: 算法 simHash java 去重  传统的hash 算法只负责将原始 ...