`

Lucene的简单查询

 
阅读更多

一、特定查询

   基本是对一个域进行匹配单一的匹配查询

 

                          Term term=new Term("name","小小");
	        TermQuery query=new TermQuery(term);
	        TopDocs hits=searcher.search(query,10);

 二、QueryParse的简单用法

     基本是对输入的查询先分词然后生成Query的子类,这样是查询共能更加的灵活和强大

 

QueryParse pq=new QueryParse("版本",域,分词器);
Query q=pq.parse("内容");


   内容有些基本的格式

 

java                                                默认包含

java junit /java or junit                          包含一个或者两个

+java +junit /java and junit                         两个都包含

title:ant                                          title域中包含ant

title:extreme -subject:sports                  title中包含切subject中没有
/title:extreme and not subject:sprots                  sprots

(agile or extreme) and method         默认域包含前面的一个或者两但一定包含metod  

title:"junit in action"                  title域为junit in action的文档

title:"junit  action "~5            title域中junit 和action 之间距离小于5的文档

java*                                        前缀是java的文档

java~                                       包含相似的文档lava

lastmodified:(1/1/09~12/31/09)           lastmodified域在第一个日期和第二个日期之间

 练习下简单的搜索

 

QueryParse qp=new QueryParse(版本,域,分词);
Query q=qp.parse("name: 小* and not ype:天灾")
查询的是名字是前缀是小,但是不是天灾的。

 结果

 

阵营==近卫
名字==小小
id==2
阵营==近卫
名字==小牛
id==4

 搜索

 

  QueryParser q=new QueryParser(Version.LUCENE_42, "name", new SmartChineseAnalyzer(Version.LUCENE_42));
	  query=q.parse("name: 小*");

 结果:

 

阵营==近卫
名字==小小
id==2
阵营==近卫
名字==小牛
id==4
阵营==天灾
名字==小黑
id==5

 三、IndexSearch的基本用法

   声明

 

IndexSearch serch=new IndexSearch(IndexReader);
IndexReader的消耗的资源很多,一般一个IndexReader重复使用
             reOpen();用于索引的改变时重新打开
             多线程使用的时候注意线程安全,并关闭老的IndexReader

 search()的常用方法

 

TopDocs  search(query,int)        返回评分高的前N个

TopDocs search(query,Filter,int)  受文档子集约束,约束基于过滤策略

TopFileldDocs search(query,Filter,int,sort)......排序

void search(query,Collector)      不想返回前N个

void search(query,Filter,Collector)...有过滤策略

 四TopDocs常用方法

 

totalHits                     匹配搜索条件的文档那个数

getMaxScore              最大的评分数


ScoreDocs                  匹配文档的一个集合

 五、多样化的查询

 

TermQuery         关键字进行查询

TermRangeQuery    进行一个查询范围选择


NumercRangeQuery 对数字进行范围的一个查询

PrefixQuery         层次递归进行查询通过字符串进行搜索

BooleanQuery  综合查询允许进行进行组合操作的逻辑运算
                BooleanClause.Occur.Must and
                        .............................SHOULD or

PhraseQuery         短语搜索
 
WildCardQuery      通配符查询 */?

FuzzyQuery            模糊查询

MatchAllDocsQuery  匹配所有的

 

分享到:
评论

相关推荐

    lucene搜索的简单入门例子源代码

    我自己写的一个lucene搜索引擎的简单入门例子源代码 对照lucene,相当的易懂。api我这也有,含JE分词器。

    Lucene 索引的简单使用

    Lucene创建索引,查询索引的简单使用。

    lucene3.0-lib

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    lucene-5.5.5

    lucene5.5.5, Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,...

    lucene-8.1.1.zip

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    Lucene 3.6 学习笔记

    第一章 LUCENE基础 2 1.1 索引部分的核心类 2 1.2 分词部分的核心类 2 1.3 搜索部分的核心类 2 第二章 索引建立 3 2.1 创建Directory 3 2.2 创建Writer 3 2.3 创建文档并且添加索引 4 2.4 查询索引的基本信息 5 2.5 ...

    lucene4.0简单的新增和查询

    简单的lucene4.0样例,包含新增和查询功能,包含lucene4.0jar包,适合jdk1.6。

    lucene原理分析pdf

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    jsuop+lucene demo

    jsuop+lucene 实现简单的新闻爬去、全文索引查询

    lucene-3.4.0-src.tgz

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    Lucene3.3.0学习Demo

    这是我通过对Lucene3.3.0源码进行了简单解读,依据应用详细的做了很多Demo,大家可以一道学习。

    lucene4.3源码

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    lucene-3.4.0

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    Lucene MoreLikeThis实例

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    Lucene-6.0.0

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    lucene包及基础教程完全下载

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    lucene 7.1 jar包及文档

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    使用lucene构建一个简单的搜索引擎

    全文检索首先将要查询的目标文档中的词提取出来,组成索引,通过查询索引达到搜索目标文档的目的。这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-...这是一个使用lucene开源框架编写的一个简单的搜索功能

    lucene-3.5.0.zip

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

    Lucene全文检索Java实例工程

    Lucene是apache软件基金会 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...

Global site tag (gtag.js) - Google Analytics