Dspace1.5 之 Lucene

 Dspace 是采用 Lucene 作为它的检索引擎, 来看看如何增加其对中文及全文检索的支持。

 

一 、 中文检索

 

1.  增加中文分词器

 

    Lucene 2.3.2 也已采用 maven 来管理了,分了很多模块。Dspace 中依赖的包 lucene-core-2.3.0.jar

中仅有 standardAnalyzer ,只能检索英文。要想检索中文,需要引用 lucene-contrib 下的analyzers。 

在Dspace-api 模块的pom配置文件中增加 analyzers 依赖项:

 

      <groupId>org.apache.lucene</groupId>
         <artifactId>lucene-analyzers</artifactId>
      </dependency>

 

然后到系统当前用户 [\.m2\repository\org\dspace\dspace-parent\1.5.1-SNAPSHOT] 目录下找到

dspace-parent-1.5.1-SNAPSHOT.pom 文件,增加 analyzers 依赖:

 

         <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-analyzers</artifactId>
            <version>2.3.0</version>
         </dependency>

 

 

2.  修改 dspace-config 配置文件,设置中文分词器为 ChineseAnalyzer:

 

# Chinese analyzer
search.analyzer = org.apache.lucene.analysis.cn.ChineseAnalyzer

 

 dspace-assemble 重新编译后运行,可以看到中文检索的效果。

 

3.  说明

   

    可以通过如下cmd命令行来重新建立索引,需要将[dspace]/search/ 目录下的索引文件先清空。

 

dsrun org.dspace.search.DSIndexer

  

    Dspace1.5 中命令行的执行请见 “Dspace1.5 在 Eclipse 中的集成”。 

 

    尽管实现了中文检索的功能,但还是比较弱的。ChineseAnalyzer,CjkAnalyzer 是Lucene contrib 中

提供的中文分词器,可以考虑其他中文分词器,如 庖丁 和 IKAnalyzer ,性能可能会好些。

 

 

二、 全文检索

 

1.  配置 [dspace]/config/dspace.cfg 文件

   

    在dspace.cfg中有过滤器插件的配置,过滤器的作用是将对应的文件转换成能够索引的 txt 文本文件。Dspace目前支

持pdf、word、html、txt 这几种类型的文件。

 

#Names of the enabled MediaFilter or FormatFilter plugins
filter.plugins = PDF Text Extractor, HTML Text Extractor, \
	       Word Text Extractor, JPEG Thumbnail

 

 

2.  执行CMD命令建立索引

   

dsrun org.dspace.app.mediafilter.MediaFilterManager

 

    这条命令会调用配置文件中设置的过滤器完成对相应文件的转换(transform to txt)并基于txt文件建立全文索引。索

引完成后就可以在首页默认的搜索栏内、或高级检索中搜索类型选为关键字的时候进行全文检索了。

 

    Dspace1.5 中命令行的执行请见 “Dspace1.5 在 Eclipse 中的集成”。 

 

3.  每次新增文件都需要重新执行cmd命令来reindex,这可以通过加入Quartz 等调度框架来实现任务的定时自动执行。

       

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值