lucene学习笔记(一)——索引的建立

学习书籍:开发自己的搜索引擎 Lucene+Heritrix(第二版) 

搜索引擎的总体思路:提供源文件(搜索目标)  -->  对源文件分词  -->  新建Field  -->  Field写入Document  -->  建立索引  -->  开始搜索(对索引进行搜索)  -->  搜索结果


基本概念:

Document:逻辑文件。因为Lucene无法对物理文件建立索引,所以使用Document与物理文件进行对应,Lucene对Document进行处理。Document不等于物理文件,只是收集了物理文件的部分或全部数据源。

Field:数据源有Field类表示,或者理解为字段。Document类似于database中的row,Field类似于column。

IndexWriter:索引工具,用于建立索引,加入Document。

IndexReader:对索引的读取和维护工作。

Analyzer:分词器。

segment:Lucene对索引管理的最大单位,一个segment中可以包含多个Document。

.fnm文件:包含Document所有的field名称。

.fdt文件:存储具有Store.Yes属性的Field数据。

.fdx文件:存储Document在.fdt中的位置。

.tis文件:存储分词后的词条(term)。

.tii文件:term的所以文件,表明了term在.tis中的位置。

deletable文件:记录删除的Document,类似于回收站。

mergeFactor:合并因子。


Field属性:

1、是否储存(isStored)

2、是否索引(isIndexed)

3、是否分词(isTokenized)


IndexWriter属性:

1、maxFieldLength:Field的最大长度,默认10 000,可以使用setter更改。

IndexWriter方法:

1、optimize():对指定索引目录下的所有segment进行优化,合并。


IndexReader方法:

1、numDocs():返回索引中Document数量。

2、deleteDocument(int ID):删除指定ID的Document。

3、deleteDocument(Term term):批量删除匹配的Document。

4、undeleteAll():反删除。


Document常用构造函数:Document();

Field常用构造函数:Field(String name, String value, Store stroe, Index index);

IndexWriter常用构造函数:IndexWriter(String path, Analyzer a, boolean create);    create参数表示是否删除原有索引重新建立索引。

IndexReader构造方法:IndexReader.open(String Path);


注意:

1、使用IndexWriter添加完Document后,一定要使用IndexWriter的close方法关闭索引器。

2、索引的修改:只允许一个线程操作。

3、索引的检索:允许多线程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值