如何用java的lucene对数据库进行全文检索
1个回答
推荐于2017-11-21
展开全部
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的大体用法,不知道是不是说的很清楚。
你的数据来源可以是关系数据库,可以是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的大体用法,不知道是不是说的很清楚。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |