如何用java的lucene对数据库进行全文检索

mill702 2006-12-11 08:05:39
我现在对全文检索有些感兴趣,想做一个新闻搜索的例子,大概就像百度的那种效果,不过是要用apache的lucene来实现,是对数据库检索,哪位大侠能给我讲解一下,车东的那篇文章看的不是很清楚,能不能给我给个检索数据库的例子,谢了!!
...全文
1488 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hackangcn 2006-12-29
  • 打赏
  • 举报
回复
晚上回去,我给你贴给简单的例子
numen_wlm 2006-12-29
  • 打赏
  • 举报
回复
mark
YuLimin 2006-12-28
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/TopicView.asp?id=5230667
linliangyi2006 2006-12-16
  • 打赏
  • 举报
回复
楼主能把问题说详细一些吗,什么情况下好多词搜索不到?每次会搜索两遍指的是什么?
mill702 2006-12-16
  • 打赏
  • 举报
回复
我就是按上面这个方法做的,基本上实现了对数据库的检索,但对中文还是有些问题,好多的词都搜索不到,我在研究下分词算法

还有一个问题,就是每次会把同一条记录检索两便,然后输出,该如何解决?
linliangyi2006 2006-12-15
  • 打赏
  • 举报
回复
大体说一下lucene的作用吧!

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到数据库中查找相关记录

上面阐述了lucene的大体用法,不知道是不是说的很清楚。

此外,对中文建索引,很重要的是支持中文的分词器,如果需要,你可以参考一下http://community.csdn.net/Expert/topic/5230/5230667.xml?temp=.3637964
sg552 2006-12-11
  • 打赏
  • 举报
回复
目前国内用LUCENE的人还很少,貌似;

国内的中文LUCENE书也基本是从LUCENE IN ACTION中抄的。

楼住,多多努力啊!加油~

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧