"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. VS中调试时监控线程的最后错误代码

    进行调试的时候,监控线程的最后错误代码是非常有用的. 在 Microsoft Visual studio 中,Microsoft 的调试程序支持一个非常有用的特性,即可以配置 Watch 窗口,以便始 ...

  2. Chapter 14_2 全局变量声明

    Lua中的全局变量不需要声明就可以使用.对于小程序十分方便,但是大型程序中 一处简单的笔误就可能造成难以发现的bug. 不过,这种性能可以改变.由于Lua将全局变量放在一个普通的table中,可以通过 ...

  3. javascript动画效果之缓冲动画

    这里的html和css的代码是复制之前的随便匀速运动的,所以不需要改变 <!DOCTYPE html> <html> <head> <meta charset ...

  4. ural 1353. Milliard Vasya's Function(背包/递归深搜)

    1353. Milliard Vasya's Function Time limit: 1.0 second Memory limit: 64 MB Vasya is the beginning ma ...

  5. composer安装自己的包

    composer的出现,使得PHPer可以像Java一样更加方便的管理代码.在composer没有出现之前,人们大多使用pear.pecl管理依赖,但是局限性很多,也很少有人用(接触的大多phper基 ...

  6. MAC图片格式转换

    OS X下有一个sips的程序可以用来处理图片. sips的名称功能非常强大,参考 帮助文档 . 这里我们只用到其中的一个功能,转换图片格式. 命令参考: sips  - s format jpeg  ...

  7. Heap Operations(模拟题)

     Heap Operations time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  8. python中telnetlib模块的使用

    一.Windows下开启Telnet服务 (详见:与Win7防火墙无缝结合 Telnet功能测试) 1.Windows 2000/XP/2003/Vista:默认已安装但禁止了Telnet服务 (1) ...

  9. permutation求全排列

    include <iostream> #include <string> using namespace std; void swap(char &c1, char & ...

  10. svn revert

    本地开发环境出现一个问题,用revert完美解决. 问题描述: 文件static/image/common/jiqiaodaren.png已经被提交到svn上,但是我的开发环境因未与svn同步,所以没 ...