`
阅读更多

首先下载Lucene

URL: http://archive.apache.org/dist/lucene/java/lucene-2.4.1.zip

 

用的中文分词组件是“庖丁解牛”见附件,现在有关中文分词的组件很多,本人是在通过比较之后选择这一个组件的,各位有什么好的建议望赐教,之所以选择庖丁解牛是感觉他的技术资料要多一些(以后有问题了可以解决的路径要多一些),而且效率也不错。

 

组件的配置过程按照网上的流程:

1)将二进制包paoding-analyis.jar放到自己的classpath下
2)将字典文件安装(也就是拷贝)到某个目录下,比如/data/paoding/dic下,本人是直接放到了src目录下
3)把配置文件paoding-analysis.properties放到自己的classpath(src目录)下
4)打开paoding-analysis.properties,把paoding.dic.home属性设置为字
典的安装目录, paoding.dic.home=classpath:dic(注意只是在原文件中添加该句,原文件内容不要改动),最后运行测试程序发现这样可以建立索引 但是检索时候hits总是空值 ,后来又参考了网络上众多牛人的资料,发现跟环境编码有关,所以我把eclipse的默认编码改成utf-8.调试ok了


以下是搜索过程中感觉比较有用的知识点,分享一下:

 

Lucene:术语

 

IndexWriter:lucene中最重要的的类之一,它主要是用来将文档加入索引,同时控制索引过程中的一些参数使用。

Analyzer:分析器,主要用于分析搜索引擎遇到的各种文本。常用的有StandardAnalyzer分析器,StopAnalyzer分析器,WhitespaceAnalyzer分析器等。

Directory:索引存放的位置;lucene提供了两种索引存放的位置,一种是磁盘,一种是内存。一般情况将索引放在磁盘上;相应地lucene提供了FSDirectory和RAMDirectory两个类。

Document:文档;Document相当于一个要进行索引的单元,任何可以想要被索引的文件都必须转化为Document对象才能进行索引。

Field:字段。

IndexSearcher:是lucene中最基本的检索工具,所有的检索都会用到IndexSearcher工具;

Query:查询,lucene中支持模糊查询,语义查询,短语查询,组合查询等等,如有TermQuery,BooleanQuery,RangeQuery,WildcardQuery等一些类。

QueryParser: 是一个解析用户输入的工具,可以通过扫描用户输入的字符串,生成Query对象。

Hits:在搜索完成之后,需要把搜索结果返回并显示给用户,只有这样才算是完成搜索的目的。在lucene中,搜索的结果的集合是用Hits类的实例来表示的。

 

1.       对于某字段的关键字的模糊查询


Query query=new WildcardQuery(new Term("sender","*davy*"));

        

        Searcher searcher
=new IndexSearcher(indexFilePath);

        Hits hits
=searcher.search(query);

        
for (int i = 0; i < hits.length(); i++{

            System.
out.println(hits.doc(i).get("name"));

        }



 

2.       对于某字段的关键字的语义查询

 


Query query=QueryParser.parse("索引","title",analyzer);

        

        Searcher searcher
=new IndexSearcher(indexFilePath);

        Hits hits
=searcher.search(query);

        
for (int i = 0; i < hits.length(); i++{

            System.
out.println(hits.doc(i).get("name"));

        }



 

3.       对于多字段的关键字的查询

 


Query query=MultiFieldQueryParser.parse("索引",new String[]{"title","content"},analyzer);

        

        Searcher searcher
=new IndexSearcher(indexFilePath);

        Hits hits
=searcher.search(query);

        
for (int i = 0; i < hits.length(); i++{

            System.
out.println(hits.doc(i).get("name"));

        }



 

4.       复合查询(多种查询条件的综合查询)

 


Query query=MultiFieldQueryParser.parse("索引",new String[]{"title","content"},analyzer);

        Query mquery
=new WildcardQuery(new Term("sender","bluedavy*"));

        TermQuery tquery
=new TermQuery(new Term("name","jerry"));

        

        BooleanQuery bquery
=new BooleanQuery();

        bquery.add(query,
true,false);

        bquery.add(mquery,
true,false);

        bquery.add(tquery,
true,false);

        

        Searcher searcher
=new IndexSearcher(indexFilePath);

        Hits hits
=searcher.search(bquery);

        
for (int i = 0; i < hits.length(); i++{

            System.
out.println(hits.doc(i).get("name"));

        }

 

 

今天就先学习到这里了。。。继续调试项目ing。。。哎

分享到:
评论

相关推荐

    lucene学习资料收集

    【标题】:“Lucene学习资料收集” 【描述】:Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发。这个资料集可能包含了关于如何理解和使用Lucene的各种资源,特别是通过博主huanglz19871030在iteye上的...

    Lucene的的学习资料及案例

    **Lucene学习指南** Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的搜索引擎库。它提供了一个简单的API,使得开发者能够方便地在应用中实现全文检索功能。本篇文章将...

    lucene学习

    Lucene的基础知识 1、案例分析:什么是全文检索,如何实现全文检索 2、Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3、配置开发环境 4、创建索引库 5、查询索引库 6、分析器的分析过程 a) 测试分析器的分词...

    Lucene-2.0学习文档

    《深入理解Lucene-2.0:从源码到应用》 Lucene是一个开源的全文检索库,由Apache软件基金会开发并维护。它为Java开发者提供了强大的文本搜索功能,广泛应用于各种信息检索系统中。本篇文章将围绕"Lucene-2.0学习...

    lucene学习pdf2

    《Lucene深度解析与Luke工具应用》 Lucene,作为Apache软件基金会的开源全文搜索引擎库,已经在信息检索领域扮演了重要角色。它提供了一个高效、可扩展的搜索平台,广泛应用于各种网站、企业系统和大数据分析中。...

    Lucene3.3.0学习Demo

    **Lucene 3.3.0 学习Demo** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发。在3.3.0版本中,Lucene提供了强大的文本搜索功能,包括分词、索引创建、查询解析和结果排序等。这个"Lucene3.3.0学习Demo...

    Lucene学习源码.rar

    Lucene是用Java编写的,但有多种语言的接口,包括Python、.NET等。本文将主要围绕Java Lucene进行深入探讨,并基于提供的“Lucene学习源码.rar”文件中的“Lucene视频教程_讲解部分源码”展开讨论。 一、Lucene核心...

    lucene学习资料

    《Lucene学习资料》 Lucene是一个开源的全文搜索引擎库,由Apache软件基金会维护。它提供了高级的文本分析和索引功能,使得开发者能够轻松地在应用程序中集成强大的搜索功能。这个资料包中的《Lucene in Action_2nd...

    Lucene.net学习帮助文档

    **Lucene.net学习帮助文档** Lucene.net是一个开源全文搜索引擎库,它是Apache Lucene项目的一部分,专门针对.NET Framework进行了优化。这个压缩包包含了Lucene.net的源码和中文学习文档,旨在帮助开发者深入理解...

    data.rar学习lucene需要的数据文件

    “data.rar”文件是学习Lucene时常用的一个数据集,它包含各种类型的数据,如文本、图片、音频等,用于演示和实践Lucene的索引和检索功能。解压后的“data”文件夹下可能包含了多个子文件夹,每个子文件夹代表不同的...

    Lucene+compass学习资料

    《深入探索Lucene+Compass技术与Ajax应用》 在当今的互联网开发中,数据检索和实时交互性已经成为不可或缺的功能。Lucene作为一个强大的全文搜索引擎库,为开发者提供了高效的文本搜索能力;Compass作为Lucene的一...

    lucene4.8学习资料和案例

    《Lucene 4.8学习指南与实战案例分析》 Lucene是一个强大的全文搜索引擎库,由Apache软件基金会开发,主要用于Java环境。版本4.8在功能和性能上都有显著提升,是许多开发者进行文本检索应用开发的重要工具。本文将...

    lucene学习-02

    【标题】:“Lucene学习-02” 在深入探讨“Lucene学习-02”这一主题之前,我们先来理解一下Lucene的核心概念。Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,广泛应用于各种搜索引擎和信息检索系统。...

    一步一步跟我学习Lucene源码之lucene的各种Field

    Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发,用Java编写。它提供了一个简单但功能强大的API,允许开发者在应用程序中添加搜索功能。Lucene的核心功能包括文档的索引、查询解析、排序以及结果的评分...

    用 Lucene 加速 Web 搜索应用程序的开发

    "用 Lucene 加速 Web 搜索应用程序的开发" 这个标题指出,我们将探讨如何利用 Apache Lucene 这个全文搜索引擎库来提升 Web 应用程序的搜索性能。Lucene 是一个开源的Java库,专门用于文本搜索,它提供了高效的索引...

    Lucene5学习之拼音搜索

    《深入探索Lucene5:拼音搜索的实现与应用》 Lucene是一个强大的全文搜索引擎库,广泛应用于各种信息检索系统中。在Lucene5版本中,它不仅提供了基础的文本搜索功能,还支持了拼音搜索,这极大地提高了中文搜索的...

    lucene学习总结

    **Lucene学习总结** 在深入理解Lucene之前,我们首先需要了解什么是全文检索。全文检索是一种从大量文本数据中快速查找所需信息的技术。它通过建立索引来实现高效的搜索,而Lucene正是Java环境下最著名的全文搜索...

Global site tag (gtag.js) - Google Analytics