lucene简介 + 创建索引和搜索初步 ——转自robert
2014-09-29 16:01
393 查看
一、什么是Lucene?
Lucene最初是由Doug Cutting开发的,2000年3月,发布第一个版本,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎 ;Lucene得名于Doug妻子的中名,同时这也她外祖母的姓;目前是Apache基金会的一个顶级项目,同时也是学习搜索引擎入门必知必会。Lucene 是一个 J***A 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作。
优点:成熟的解决方案,有很多的成功案例。apache 顶级项目,正在持续快速的进步。庞大而活跃的开发社区,大量的开发人员。它只是一个类库,有足够的定制和优化空间:经过简单定制,就可以满足绝大部分常见的需求;经过优化,可以支持 10亿+ 量级的搜索。
缺点:需要额外的开发工作。所有的扩展,分布式,可靠性等都需要自己实现;非实时,从建索引到可以搜索中间有一个时间延迟,而当前的“近实时”(Lucene Near Real Time search)搜索方案的可扩展性有待进一步完善。
对于全文检索一般都由以下3个部分组成:
索引部分
分词部分
搜索部分
在接下来的一系列文章中会详细介绍这三个部分,本文将简单介绍lucene环境搭建以及lucene索引初步。
目前基于Lucene的产品有:
Solr,Nutch,Hbase,Katta,constellio,Summa,Compass,Bobo Search,Index Tank,Elastic Search,Hadoop contrib/index
,LinkedIn ,Eclipse,Cocoon
二、Lucene环境搭建
目录最新版的Lucene为4.10.0(今天是2014-09-22 )版,其官方主页为:http://lucene.apache.org/ 或者点击下载
如果你会使用Maven,那么可以非常简单的将pom.xml中加入以下内容即可:
三、索引创建
1、创建Directory2、创建IndexWriter
3、创建Document对象
4、为Docuemnt添加Field
5、通过IndexWriter添加文档到Document
1、这里使用的是FSDirectory,是为了方便进行测试,将生成的文件写入到本地硬盘中;
2、Document相当于数据库中的一条记录,field相当数据库中表的一列;
3、使用indexWriter当记录添加到文档索引中;
4、fieldType可以设置是否需要索引和是否需要存储;
5、记得关闭indexWriter
生成的索引文件,如下图所示:
四、搜索记录
1、创建Directory2、创建IndexReader
3、根据IndexReader创建IndexSearcher
4、创建搜索的Query
5、根据Searcher搜索并且返回TopDocs
6、根据TopDocs获取ScoreDoc对象
7、根据Seacher和ScoreDoc对象获取具体的Document对象
8、根据Document对象获取需要的值
所有源码:HelloLucene.java
搜索引擎系列 ---lucene简介 创建索引和搜索初步
相关文章推荐
- 搜索引擎系列 ---lucene简介 创建索引和搜索初步
- 搜索引擎系列 -lucene简介 创建索引和搜索初步步骤
- lucene简介 创建索引和搜索初步
- 01-lucene简介和索引创建以及搜索
- Lucene介绍和创建索引和搜索初步
- lucene创建索引初步和搜索初步
- Lucene.Net核心类简介,创建索引,搜索,Lucene高亮组建演示,Rss获得最新帖子,只索引帖子的有意义部分,在AddDocument之前先移除旧有文档.
- Lucene介绍和创建索引和搜索初步
- Lucene-索引创建&搜索
- Lucene.Net在创建好索引文件内搜索
- Lucene创建索引及搜索
- lucene4.6索引创建和搜索例子
- Lucene教程(一) 创建索引初步
- Lucene 入门之创建索引和搜索
- 利用Lucene.net搭建站内搜索(3)---创建索引
- 全文检索Lucene入门之创建索引及简单搜索
- lucene 4.3 索引的简单创建和搜索代码展示
- 利用Lucene.net搭建站内搜索(3)---创建索引
- Lucene.net搜索——创建索引
- lucene3.5学习笔记02--创建索引和建立搜索