lucene实现搜索浅谈
2015-01-14 21:13
239 查看
项目中实现检索功能是现在许多网站项目都存在的功能,比如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,它表示一个存储在内存当中的索引的位置。
现在我就以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,它表示一个存储在内存当中的索引的位置。
相关文章推荐
- lucene.net 如何实现全文的搜索
- Lucene.net 实现全文搜索
- 自己动手实现 lucene 搜索代码高亮显示
- Hack in Lucene.Net之为什么无法在搜索时统计分类下相关结果数或者实现Group By效果
- DotLucene:37行代码实现全文搜索
- zz:DotLucene:37行代码实现全文搜索
- lucene .NET 搜索图片 功能实现
- 利用Lucene 实现高级搜索
- DotLucene:37行代码实现全文搜索
- Lucene 建立索引数据库 实现搜索网页
- Lucene.net 实现全文搜索
- Lucene.net 实现全文搜索(转)
- Lucene.net 实现全文搜索
- Lucene.net 实现全文搜索
- Lucene.net实现全文搜索
- 成功将99收藏夹实现基于Lucene的站内全文搜索
- lucene实现 在某一范围进行搜索 RangeQuery
- 使用Zend_Search_Lucene实现频道搜索
- DotLucene:37行代码实现全文搜索
- lucene .NET 搜索图片 功能实现