项目中实现检索功能是现在许多网站项目都存在的功能,比如cms系统等。
现在我就以cms系统为例简单的说一下实现关键词检索功能,当我们在系统中发布一篇文章之后怎么能够让我们利用lucene可以检索出来呢i?
其实是这样的,当我们把一篇文章的系统保存到数据库之后同时实现把该文章的所有系统生成一系列的检索文件,这样在网站上的搜索就相当与在document中搜索关键字一样了,然后对文章的删改的同时对所生成的检索文件根据具体的索引进行相应的删改。下面说明lucene的几个关键的属性:
Document Document 是用来描述文档的,这里的文档可以指一个 HTML 页面,一封电子邮件,或者是一个文本文件。一个 Document 对象由多个 Field 对象组成的。可以把一个 Document 对象想象成数据库中的一个记录,而每个 Field 对象就是记录的一个字段。 Field Field 对象是用来描述一个文档的某个属性的,比如一封电子邮件的标题和内容可以用两个 Field 对象分别描述。 Analyzer 在一个文档被索引之前,首先需要对文档内容进行分词处理,这部分工作就是由 Analyzer 来做的。Analyzer 类是一个抽象类,它有多个实现。针对不同的语言和应用需要选择适合的 Analyzer。Analyzer 把分词后的内容交给 IndexWriter 来建立索引。 IndexWriter IndexWriter 是 Lucene 用来创建索引的一个核心的类,他的作用是把一个个的 Document 对象加到索引中来。 Directory 这个类代表了 Lucene 的索引的存储的位置,这是一个抽象类,它目前有两个实现,第一个是 FSDirectory,它表示一个存储在文件系统中的索引的位置。第二个是 RAMDirectory,它表示一个存储在内存当中的索引的位置。