`
wangzhen5
  • 浏览: 80810 次
  • 性别: Icon_minigender_1
  • 来自: 河南省
社区版块
存档分类
最新评论

lunece查询实例.

阅读更多
lunece查询
//初始化IndexSearcher
IndexSearcher search = new IndexSearcher(path);
//构建Term
Term term = new Term(fieldName,value);
//构建Query对象
Query q = new TermQuery(term);
//检索
Hits hits = search.search(q);
//显示查询结果
for(int i=0; i<hits.length(); i++)
{
System.out.println(hits.doc(i));
}
IndexSearcher的常用方法有
search(Query q);
search(Query q,Filter filter);
search(Query q,Sort sort);
search(Query q,Filter filter,Sort sort);

Hits的常用方法有
doc(i); //得到第i个Document
id(i);  //得到第i个Document在lucene文件中的id号
length(); //结果集的数量
score(i); //第i个Doucment的文档得分,默认显示方式为score值越高,排得越前。score取值0-1之间
如果想提高score的值。可以有建立索引时设置,用Field.setBoost(Float f)方法
Field f = new Field(fieldname,value,store,tokenized);
f.setBoost(5f);

在lucene中,document ID 越小,查询时所需时间越短,因为Hits的内部缓存机制。

Lunece的常用搜索

一、TermQuery 词条搜索
Query query = new TermQuery(new Term(fieldname,value));

二、BooleanQuery 布尔搜索
建立二个TermQuery
Query q1 = new TermQuery(new Term(fieldname1,value1));
Query q2 = new TermQuery(new Term(fieldname2,value2));
建立BooleanQuery对象
BooleanQuery query = new BooleanQuery();
query.add(q1,BooleanClause.Occue.MUST);
query.add(q2,BooleanClause.Occue.MUST);
BooleanClause.Occue 有三个静态值
MUST,MUST_NOT,SHOULD
must&&must = (AnB)
must&&must_not = (A-(AnB))
should&&should = (AuB)

三、RangeQuery 范围搜索
RangeQuery query = new RangeQuery(begin,end,false);
begin = new Term(fieldname,value);
end = new Term(fieldname,value);
false 表示开区间 不包括 (begin,end) true 表示闭区间 包括 [begin,end]

四、PrefixQuery 前缀搜索
PrefixQuery query = new PrefixQuery(new Term(fieldname,value));

五、PhraseQuery 短语搜索
PhraseQuery query = new PhraseQuery();
query.add(new Term(fieldname,value));
query.add(new Term(fieldname,value));
还可以设置坡度,query.setSlop(int n),默认为0如查询“钢铁”,可以用
query.add(new Term(fieldname,”钢”));
query.add(new Term(fieldname,”铁”));
如想把“钢和铁”,“钢与铁”也查询出来。可以加上query.setSlop(1);

六、MultiPhraseQuery 多短语搜索
MultiPhraseQuery query = new MultiPharseQuery();
//加入短语的前缀
query.add(new Term(fieldname,value));
//加入短语的后缀
query.add(new Term[] {new Term(fieldname,value), new Term(fieldname,value)});

七、FuzzyQuery 模糊搜索
FuzzyQuery query = new FuzzyQuery(new Term(filed,value));
它的三个构造函数
FuzzyQuery(Term t);
FuzzyQuery(Term t,float 0.5f); 相似度。0-1之间
FuzzyQuery(Term t,float 0.5f,int prefixLength);前缀必须相同的长度

分享到:
评论

相关推荐

    lunece_search_3.0.zip_lunece+es

    在"Lunece_search"的压缩包文件中,很可能包含了实现上述步骤的代码示例或者教程。通过阅读和实践这些示例,我们可以更好地理解和掌握Lunecy+ES在实际项目中的应用。 总的来说,Lunecy+ES的组合为开发者提供了一套...

    lunece 建立索引与查询示例

    **Lucene 建立索引与查询指南** Lucene 是一个开源的全文搜索引擎库,由 Apache 软件基金会开发。它提供了高效、可扩展的搜索功能,被广泛应用于各种项目和产品中。本指南将详细介绍如何使用 Lucene 创建索引以及...

    lunece全文检索C#

    这里创建了一个`ApplicationClass`实例来打开Word文档,并将其内容读取到字符串中,然后添加到索引文档中。注意,这需要在项目中引用Microsoft Office的COM组件。 在处理完所有文件后,别忘了关闭`IndexWriter`: `...

    lunece入门之HelloWorld

    你可以指定查询字段和查询文本,它会生成一个`Query`对象。 3. 执行搜索:`IndexSearcher`的`search(Query, int)`方法执行搜索,返回一个`TopDocs`对象,其中包含了匹配的文档及其分数。 4. 处理结果:遍历`...

    lunece

    Lucene不仅支持基本的全文搜索,还内置了布尔操作、模糊查询(Fuzzy Search)、分组查询等功能,大大增强了查询的灵活性。 Lucene之所以受欢迎,得益于其诸多优点。首先,它的索引文件格式是跨平台的,允许不同系统...

    lunece 学习笔记实用知识库分享知识分享

    lunece 学习笔记实用知识库分享知识分享 在本文中,我们将从多方面探索 Lucene 和 Solr 相关的知识点,并对其进行详细的分析和解释。 Lucene 和 Solr 的基本概念 Lucene 是一个基于 Java 的搜索引擎库,提供了...

    Lucene检索

    1. **初始化**:设置Analyzer,创建Directory实例,然后通过IndexWriterConfig创建IndexWriter。 2. **创建索引**:创建Document对象,添加Field,然后使用IndexWriter将Document写入索引。每个Field代表文档的一个...

    Lucene.net高速创建索引

    数据查询可能涉及到SQL语句的编写,确保查询结果符合构建索引的需求。接着,数据会被转化为Lucene.NET支持的文档对象,每个文档对象对应数据库中的一个记录。这些文档对象包含了待索引的字段,如标题、内容等,这些...

    lucene-4.10.2

    Lucene提供了`QueryParser`类,用于将用户输入的查询字符串转化为内部表示的查询对象。这些查询对象随后由`Searcher`执行,返回最相关的文档。4.10.2版本优化了查询执行的性能,特别是在处理复杂查询结构时。 4. *...

    最新版linux lucene-8.5.1.tgz

    1. 性能优化:Lucene团队始终致力于提高索引和查询速度,新版本可能包含更快的搜索算法和更高效的内存管理,以提供更快的响应时间。 2. 新特性和功能:可能引入了新的API或者对现有API的增强,比如改进的近实时搜索...

    solr的学习

    Lucene 仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以便在目标系统中实现全文检索的功能,或者以 Lucene 为基础构建全文检索应用。 - **Solr**:其目标是打造一款企业级的...

    Lucene常用的Demo

    4. **Lunece** 注意,这里可能是打错了,正确应该是“Lucene”。在Lucene项目中,通常会包含许多示例代码,这些代码覆盖了从基础到进阶的各种用法。通过查看这些代码,你可以学习如何使用`TokenStream`进行自定义的...

    全文检索 lucene

    作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为...

    最新.net技术博客源代码.rar

    自主研发的中文分词技术,速度超过3MB/s,准确率达到90%以上,大大超过网上各种开源中文分词技术,几乎可以和中科院的ICTCLAS相媲美,结合当前最成熟的Lunece的.net版本,实现了功能强大执行快速的全文检索引擎...

    Blog-online-System:已经上线的SpringBoot博客项目

    SpringBoot +Shiro+Mybatis +Thymeleaf +Layui+mysql+Lunece 图片使用的七牛云,属性设置在类cn.coderzhx.utils.VariableName里 如果不想用七牛云那么修改为为tomcat的upload目录 如果仅仅是本地运行项目的话,七牛云...

    x3blog 单用户博客系统 1.0.80802 源代码

    5.自主研发的中文分词技术,速度超过3MB/s,准确率达到90%以上,大大超过网上各种开源中文分词技术,几乎可以和中科院的ICTCLAS相媲美,结合当前最成熟的Lunece的.net版本,实现了功能强大执行快速的全文检索引擎。...

    x3blog 单用户博客系统 1.0.80802 编译版

    5.自主研发的中文分词技术,速度超过3MB/s,准确率达到90%以上,大大超过网上各种开源中文分词技术,几乎可以和中科院的ICTCLAS相媲美,结合当前最成熟的Lunece的.net版本,实现了功能强大执行快速的全文检索引擎。...

    x3blog单用户博客程序源码-1.0.build80802-src

    自主研发的中文分词技术,速度超过3MB/s,准确率达到90%以上,大大超过网上各种开源中文分词技术,几乎可以和中科院的ICTCLAS相媲美,结合当前最成熟的Lunece的.net版本,实现了功能强大执行快速的全文检索引擎。...

    X3BLOG 单用户版 1.0 build80707 (access)

    &lt;br&gt; 自主研发的中文分词技术,速度超过3MB/s,准确率达到90%以上,大大超过网上各种开源中文分词技术,几乎可以和中科院的ICTCLAS相媲美,结合当前最成熟的Lunece的.net版本,实现了功能强大执行快速的全文检索...

Global site tag (gtag.js) - Google Analytics