Lucene 初识

 Lucene是一个开源的全文检索工具包,使用java实现。从2000年开始,Doug Cutting把lucene放到SourceForge上供人随意下载,到了2001年,Apache自由软件联盟将其收入,成为他的一个子项目。从那时起,越来越多的人开始使用和研究他。Lucene现在已经成为java社区中最著名的开源软件之一,它提供了一组丰富的API以供开发者为java应用加入全文检索功能。


基本概念

       这里介绍的主要为在使用中经常碰到一些概念,以大家都比较熟悉的数据库来进行类比的讲解,使用

Lucene进行全文检索的过程有点类似数据库的这个过程,table->查询相应的字段或查询条件->返回相应的

记录,首先是IndexWriter,通过它建立相应的索引表,相当于数据库中的table,在构建此索引表时需指定的为

该索引表采用何种方式进行构建,也就是说对于其中的记录的字段以什么方式来进行格式的划分,这个在Lucene

中称为Analyzer,Lucene提供了几种环境下使用的Analyzer:SimpleAnalyzer、StandardAnalyzer、

GermanAnalyzer等,其中StandardAnalyzer是经常使用的,因为它提供了对于中文的支持,在表建好后我们

就需要往里面插入用于索引的记录,在Lucene中这个称为Document,有点类似数据库中table的一行记录,记

录中的字段的添加方法,在Lucene中称为Field,这个和数据库中基本一样,对于Field Lucene分为可被索引

的,可切分的,不可被切分的,不可被索引的几种组合类型,通过这几个元素基本上就可以建立起索引了。在查询

时经常碰到的为另外几个概念,首先是Query,Lucene提供了几种经常可以用到的Query:TermQuery、

MultiTermQuery、BooleanQuery、WildcardQuery、PhraseQuery、PrefixQuery、

PhrasePrefixQuery、FuzzyQuery、RangeQuery、SpanQuery,Query其实也就是指对于需要查询的字

段采用什么样的方式进行查询,如模糊查询、语义查询、短语查询、范围查询、组合查询等,还有就是

QueryParser,QueryParser可用于创建不同的Query,还有一个MultiFieldQueryParser支持对于多个字段

进行同一关键字的查询,IndexSearcher概念指的为需要对何目录下的索引文件进行何种方式的分析的查询,有

点象对数据库的哪种索引表进行查询并按一定方式进行记录中字段的分解查询的概念,通过IndexSearcher以及

Query即可查询出需要的结果,Lucene返回的为Hits.通过遍历Hits可获取返回的结果的Document,通过

Document则可获取Field中的相关信息了。

----------------------------------------------------------------------------

文章来源于:http://www.liuzm.com/article/java/9112.htm

你可能感兴趣的:(Lucene)