Lucene索引操作常用类

IndexWriter

IndexEriter(写索引)是索引过程的核心组件。这个类负责创建新索引或者打开已有索引,以及向索引中添加、删除或更新呗索引文档的信息。可以把IndexWriter看做这样一个对象:提供针对索引文件的写入操作,但不能用于读取或搜索索引。IndexWriter需要开辟一定空间来存储索引,该功能可以由Directory完成。

Diretory

Diretory类描述了Lucene索引的存放位置。它是一个抽象类,它的子类负责具体制定索引的存储路径。

Lucene包含大量有趣的Directory实现。IndexWriter不能直接索引文本,这需要先由Analyzer将文本分割成独立的单词。

Analyzer

文本文件在被索引之前,需要经过Analyzer(分析器)处理。Analyzer是由IndexWriter的构造方法来指定的,它负责被索引文本文件中提取语汇单词,并提出剩下的无用信息。如果被索引内容不是纯文本文件,那就需要先将其转换为文本文档。Analyzer是一个抽象类,而Lucene提供了几个类实现它。这些类有的提供跳过停用词(指一些常用的不能帮助区分文档的词);有的用于把词汇单元转换成小写形式,以及搜索过程能忽略大小写差别;此外,还有一些其他类。Analyzer是Lucene很重要的一部分,它的用途远远不指过滤输入这一项。对于要将Lucene集成到应用程序的开发人员来说,选择什么样Analyzer的是程序设计中非常关键的一步。

分析器的分析对象时文档,该文档包含一些分离的能被索引的域。

Document

Document(文档)对象代表一些域(Field)的集合。可以将Document对象理解为虚拟文档——如Web页面、E-mai信息或者文本文件——然后可以从中取回大量数据。文档的域代表文档或者和文档相关的一些元数据。文档的数据源对于Lucene来说是无关紧要的。Lucene指处理从二进制文档中提取的以Field实例形式出现的文本。上述元数据,都作为文档的不同域单独存储并被索引。

Lucene只处理文本和数字。Lucene的核心本身只处理java.lang.String、java.io.Reader对象和本地数字类型。虽然各种类型的文档都能被索引和搜索,但处理非文本和非数字类型的文档过程并没有处理后两类文档简单直接。

Document对象的结构比较简单,为一个包含多个Field对象的容器;Field是指包含能被索引的文本内容的类。

Field

索引中的每个文档都包含一个活多个不同命名的域,这些域包含在Field类中。每个域都有一个域名和对应得域指,以及一组选项来精确控制Lucene索引操作各个域值。文档可能拥有不止一个同名的域。在这种情况下,域的值就按照索引操作顺序添加进去。在搜索时,所有域的文本就好像连接在一起,作为一个文本域来处理。

#本内容来自Lucene实战

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值