QueryParser(单域查询)

QueryParser子类对单个域查询时创建查询query,构造方法中需要传入Lucene版本号,检索域名和分词器。

QueryParser parser = new QueryParser(Version.LUCENE_43, field, analyzer);// 查询字符串
Query query = parser.parse("key");

MultiFieldQueryParser(多域查询)

MultiFieldQueryParser parser2 = new MultiFieldQueryParser(Version.LUCENE_43, fields, analyzer);
Query query2 = parser2.parse(key);

TermQuery(单个关键字域查询)

TermQuery tq=new TermQuery(new Term(field, key));

PrefixQuery(前缀字符查询)

PrefixQuery只需要指定前缀若干个字符preStr,以preStr开始的都会被匹配,比如”Lu”可以匹配”Luke” ,”Lucene”.

 PrefixQuery prefixQuery=new PrefixQuery(new Term("field,key));

PhraseQuery(短语查询)

  PhraseQuery phraseQuery=new PhraseQuery();
phraseQuery.setSlop(3);//关键词间距离
phraseQuery.add(new Term(field, "key1"));//关键词1
phraseQuery.add(new Term(field, "key2"));//关键词2

上面的查询实例可以匹配关键词key1和key2间距不超过3的文档,field为查询域。

WildcardQuery(通配符查询)

WildcardQuery wildcardQuery=new WildcardQuery(new Term(field, "基于?"));

?匹配1个字符,*匹配任意多个字符.

TermRangeQuery(字符串范围搜索)

TermRangeQuery rangeQuery=new TermRangeQuery(field, lowerTerm, upperTerm, includeLower, includeUpper);

五个参数分别为域名、域的下限值、域的上限值、是否包含下限、是否包含上限。比如:

TermRangeQuery rangeQuery=new TermRangeQuery(field, "aab", "azz", true, false);

NumericRangeQuery(数字范围搜索)

Query q = NumericRangeQuery.newFloatRange("weight", 0.03f, 0.10f, true, true);

matches all documents whose float valued “weight” field ranges from 0.03 to 0.10, inclusive.

BooleanQuery(布尔查询)

多个query对象组合成一个对象

BooleanQuery bQuery=new BooleanQuery();
bQuery.add(new TermQuery(new Term("title", "lucene")), Occur.MUST);
bQuery.add(new TermQuery(new Term("content", "基于")), Occur.SHOULD);
bQuery.add(new TermQuery(new Term("name", "java")), Occur.MUST_NOT);

上面的例子用于查询title中一定包含”lucene”(and)或者cotent包含”基于”(or)但name中一定不含” java”(not)的文档。

Lucene 查询(Query)子类的更多相关文章

  1. Lucene 06 - 使用Lucene的Query API查询数据

    目录 1 Query对象的创建(方式一): 使用子类对象 1.1 常用的Query子类对象 1.2 常用的Query子类对象使用 1.2.1 使用TermQuery 1.2.2 使用NumericRa ...

  2. lucene 查询的使用

    各种查询方式一:使用QueryParser与查询语法.(会使用分词器) MultiFieldQueryParser查询字符串 ------------------------> Query对象 ...

  3. lucene 查询 (转载)

    原网址:http://hi.baidu.com/lszhuhaichao/blog/item/ccffc7cb858f1514bf09e66f.html Lucene3.0之查询处理(1):原理201 ...

  4. Lucene 查询工具 LQT

    Lucene Query Tool (lqt) 是一个命令行工具用来执行 Lucene 查询并对结果进行格式化输出. 使用方法: 01 $ ./lqt 02 usage: LuceneQueryToo ...

  5. Lucene查询索引(分页)

    分页查询只需传入每页显示记录数和当前页就可以实现分页查询功能 Lucene分页查询是对搜索返回的结果进行分页,而不是对搜索结果的总数量进行分页,因此我们搜索的时候都是返回前n条记录 package c ...

  6. 第六步:Lucene查询索引(优化一)

    package cn.harmel.lucene; import java.io.IOException; import java.nio.file.Paths; import org.apache. ...

  7. 第六步:Lucene查询索引

    package cn.harmel.lucene; import java.io.IOException; import java.nio.file.Paths; import org.apache. ...

  8. Lucene查询条数限制

    运用Lucene进行索引,在查询的时候是有条数限制的 public virtual TopFieldDocs Search(Query query, Filter filter, int n, Sor ...

  9. lucene 查询+分页+排序

    lucene 查询+分页+排序 1.定义一个工厂类 LuceneFactory 1 import java.io.IOException; 2 3 import org.apache.lucene.a ...

随机推荐

  1. requests-代理设置

    import requests proxies={ 'http':'http://192.168.1.1:88' 'https':'https://192.168.1.1:88' #如果代理ip需要用 ...

  2. requests-post请求

    post与get方法的区别在于post需要提交一些数据以备处理. 在requests里面非常简单,headers,data都是直接加进去就可以了 # requests.post提交表单# 有些网站使用 ...

  3. JS面向对象使用面向对象进行开发

      面向对象基础一之初体验使用面向对象进行开发 对 JS 中的面向对象的基础进行讲述, 初体验使用面向对象进行开发 主要内容是 面向对象的概念及特性 用面向对象的方式解决简单的标签创建实例 一些基础的 ...

  4. 在 .NET Core 中使用 DiagnosticSource 记录跟踪信息

    前言 最新一直在忙着项目上的事情,很久没有写博客了,在这里对关注我的粉丝们说声抱歉,后面我可能更多的分享我们在微服务落地的过程中的一些经验.那么今天给大家讲一下在 .NET Core 2 中引入的全新 ...

  5. Go VS Code 调式常见问题处理

    GO VS Code 调式配置 launch.json{ "version": "0.2.0", "configurations": [ { ...

  6. angualar2——八大组成

    Angular2 模块 理解: Angular 应用是模块化的,并且 Angular 有自己的模块系统,它被称为 Angular 模块或 NgModules. 组件 组件是一个项目主干,一个模块由多个 ...

  7. 做了两年多salesforce平台开发,转Java的经历

    2015年毕业,转眼已经三年多了.三年对于现在的我,真的很快,一开始对软件开发的执着一直没有变.我是一个很普通很普通长沙的一个专科毕业.刚进大学,对于软件开发真的是小白,仅仅只是存在对于游戏,和桌面软 ...

  8. LruCache的缓存策略

    一.Android中的缓存策略 一般来说,缓存策略主要包含缓存的添加.获取和删除这三类操作.如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大 ...

  9. hdu 5885 FFT

    XM Reserves Time Limit: 10000/10000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Others)T ...

  10. 51nod 平均数(马拉松14)

    平均数 alpq654321 (命题人)   基准时间限制:4 秒 空间限制:131072 KB 分值: 80 LYK有一个长度为n的序列a. 他最近在研究平均数. 他甚至想知道所有区间的平均数,但是 ...