Lucene的使用介绍
Posted Andrew的自留地
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene的使用介绍相关的知识,希望对你有一定的参考价值。
今天介绍第二个任务——由得到的XML获得索引,将使用到Lucene包。
(建议拉到文末点击阅读原文,在电脑端打开,微信对手机的排版真是惨不忍睹)
本文前提:已经获得XML文件。
看完本文你将知道:如何建立索引,如何使用索引。
以下是核心代码的截图和说明:
1、解析
首先确立索引所存放的位置
确定分类器和写索引对象
对存取xml文件的to文件夹中每一个xml文件即每一个file对象进行遍历操作
对要获取的一系列内容进行初始化
通过reader对象的read方法读取xml文件,获取document对象,getRootElement方法可以获取document的根节点
即这里的TEI节点
Dom4j有一系列对此document对象进行解析的方法,可以自己去探索
如果懒得看函数,最简单的方法可以一直用element方法,这个可以获取任意一个节点的子节点,可以通过这个方法一步一步获取下面的节点元素
如上述element对象title1author就是analytic节点,title存在analytic节点下的title节点中elementTextTrim可以获取某节点下的某个子节点的内容,即上述代码中title1author.elementTextTrim("title");就是我们要的title.
用这个方法可以获取我们想要的xml中的所有内容(对其解析方法有很多,此处只介绍最容易懂的方法),可以仿照获取author,date,affiliation,address,fulltext,page等
2、写入索引
新建document对象
以title为例介绍如何存储: 第一个参数:域的名称 ,第二个参数:域的内容 ,第三个参数:是否存储
对所有已经获取的内容进行相似的操作
将这些加入document对象中
将document对象加到索引中,即此xml所有内容已经被写入索引
关闭此indexWriter对象
建立的索引如下图:
3、使用索引
下面介绍如何对索引进行查找:自己看注释吧
4的fulltext可以按照自己想查的域进行修改, keyword就是搜索的关键词
5的20是搜索的条数,如果不够只会返回最大的条数 用get方法获取自己之前写入的域的内容
调用输出
结果
听说粉丝越多,教程就会更新得越频繁
没有粉丝有打赏也可以
以上
以上是关于Lucene的使用介绍的主要内容,如果未能解决你的问题,请参考以下文章