java documentlistener_DocumentListener 接口

DocumentListener 的代码如下

java学习 java培训

软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际java学习

计算机软件学习

‍public interface

DocumentListener extends EventListener {‍

‍ public void

documentExtracted(Document doc);‍

‍}java学习 java培训 软件工程师 如何学习java 学习java哪里好

东方清软java培训 清软国际java学习 计算机软件学习

为了让索引模块能够知道所有需要被索引的资源,我们在这里使用 Spring 风格的 XML

文件配置索引模块中的所有组件,尤其是所有资源。java学习 java培训 软件工程师 如何学习java 学习java哪里好

东方清软java培训 清软国际java学习 计算机软件学习

基于以上内容,我们可以大致描述出索引模块工作的过程:

首先在 XML 配置的 bean 中找出所有 Resource 对象;

对每一个调用其 extractDocuments() 方法,这一步除了完成对资源的索引外,还会在每次提取出一个 Document

对象之后,通知注册在该资源上的所有 DocumentListener;

接着处理资源的元数据(getMetaData() 的返回值);

将缓存里的数据写入到本地磁盘或者传送给远程服务器;java学习 java培训 软件工程师 如何学习java 学习java哪里好

东方清软java培训 清软国际java学习 计算机软件学习

在这个过程中,有两个地方值得注意。

第一,对资源可以注册 DocumentListener

使得我们可以在运行时刻对索引过程有更为动态的控制。举一个简单例子,对某个文章发布站点的文章进行索引时,一个很正常的要求便是发布时间更靠近当前时间的文章需要在搜索结果中排在靠前的位置。每篇文章显然对应一个

Document 对象,在 Lucene 中我们可以通过设置 Document 的 boost

值来对其进行加权。假设其中文章发布时间的 Field 的名称为 PUB_TIME,那么我们可以为资源注册一个

DocumentListener,当它被通知时,则检测 PUB_TIME 的值,根据距离当前时间的远近进行加权。

第二点很显然,在这个过程中,extractDocuments()

方法的实现依不同类型的资源而各异。下面我们主要讨论两种类型的资源:文件系统资源和数据库结果集资源。这两个类都实现了上面的

接口。java学习 java培训 软件工程师 如何学习java 学习java哪里好

东方清软java培训 清软国际java学习 计算机软件学习

为什么选择使用 Spring 风格的配置文件?这主要有两个好处:

仅依赖于 Spring Core 和 Spring Beans 便免去了定义配置机制和解析配置文件的负担;

Spring 的 IoC 机制降低了框架的耦合性,并使扩展框架变得简单;java学习 java培训 软件工程师 如何学习java 学习java哪里好

东方清软java培训 清软国际java学习 计算机软件学习

文件系统资源

对文件系统资源的索引通常从一个基目录开始,递归处理每个需要进行索引的文件。该资源有一个字符串数组类型的

excludedFiles 属性,表示在处理文件时需要排除的文件绝对路径的正则表达式。在递归遍历文件系统树的同时,绝对路径匹配

excludedFiles

中任意一项的文件将不会被处理。这主要是考虑到一般我们只需要对一部分文件夹(比如排除可能存在的备份目录)中的一部分文件(如 doc,

ppt 文件等)进行索引。java学习 java培训 软件工程师 如何学习java 学习java哪里好

东方清软java培训 清软国际java学习 计算机软件学习

java学习 java培训 软件工程师 如何学习java

学习java哪里好 东方清软java培训 清软国际java学习 计算机软件学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值