java的luence全文检索怎么做

java的luence全文检索怎么做,第1张

lucene是一个公用的全文索引组件,它的目标是把各种各样格式的数据转化成lucene特有的索引文件格式,这样才能通过lucene的高速检索机制进行全文检索。

你的数据来源可以是关系数据库,可以是word、execl、txt文档,可以是html网页,对于这些数据源,你必须将它们内部的数据读取出来,并封装成lucene的document实例,之后让lucene帮你构建索引。

举个例子:你的有一个用户数据库,里面存储了几十万的用户信息,你现在要对这个数据库进行全文索引,那么你要做的事情是:

1.写一段传统的JDBC程序,讲每条的用户信息从数据库读取出来

2.针对每条用户记录,建立一个lucene document

Document doc = new Document()

并根据你的需要,将用户信息的各个字段对应luncene document中的field 进行添加,如:

doc.add(new Field("NAME","USERNAME",Field.Store.YES,Field.Index.UN_TOKENIZED))

然后将该条doc加入到索引中, 如: luceneWriter.addDocument(doc)

这样袱常递端郛得店全锭户就建立了lucene的索引库

3.编写对索引库的搜索程序(看lucene文档),通过对lucene的索引库的查找,你可以快速找到对应记录的ID

4.通过ID到数据库中查找相关记录

ITjob里学。习到的,希望对你有所帮助

一般情况下只能检索字段及其方法名中的字符串,其实像Eclipse、Intellij idea等 IDE都有这样的功,如果是您自己要实现这个功能的话,这里说下简单的思路:

1、使用java的zip流获取所有class文件列表(含包路径);

2、使用class loader将jar包装载进来,对步骤1中的文件列表进行遍历,将每个class文件采用反射方法,获取类中的类名、字段名、方法名,使用luence做成本地索引;

3、建好索引后使用luence写一个字符串搜索功能,就可以实现对jar中的类名、字段名、方法名字符串进行检索了,不过IDE中提供都是类名、方法名的搜索。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9782295.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存