lucenelucene 原理

lucene  时间:2021-08-16  阅读:()

如何用Lucene索引数据库

Lucene一个常见的用例是在一个或者多个数据库表进行全文检索。

虽然MySql有全文检索的功能,但是如果字段和数据量增加,MySql的性能会减低很快。

映射数据到Lucene 用伪代码表示: String sql = “select id, firstname, lastname, phone, email from person”; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { Document doc = new Document(); doc.add(new Field(”id”, rs,getString(”firstname”), Field.Store.YES, Field.Index.UN_TOKENIZED)); doc.add(new Field(”firstname”, rs,getString(”firstname”), Field.Store.YES, Field.Index.TOKENIZED)); // … repeat for each column in result set writer.addDocument(doc);} 显示搜索结果 当显示搜索结果给用户时,你有两个选择: 1.因为你的Table已经扁平化到了Lucene里面,所以只需要用Document里面的Field.因为Lucene也非常快,这样会大大减低你的数据库的压力。

2.如果你要显示另外的数据到你的搜索结果页,你只需要在Hits里面收集他们的ID,然后从数据库去数据再根据结果组装搜索结果页。

要搜索的东西 以上列出的方式都是假设把整个结果集放到内存里面,这样在数据集大的话会很容易造成问题,你需要在你的SQL里面做一些分页或者offset 你还需要在你的结果集里面做一个try/catch,这样当添加一个Document出错的时候不会影响整个过程。

通常情况下可以把所有的field放到同一个”Contents” field然后只搜索这一个字段,但是需要保留这些field这样可以按field检索。

如果你需要检索多个table 通常最好能用不同的索引来搜索不同类型的数据,而不是把他们加到同一个index然后根据类型来区分。

原因: 可以更简单的维护操作。

问个很菜的有关问题,lucene如何读

呵呵,小弟英语确实很差,这技术也没接触过,刚刚才看到的 我女朋友用到,我得给她讲,这东西不知道怎么读……各位帮忙------解决方案--------------------------------------------------------Lucene是一个非常优秀的开源的全文搜索引擎,我们可以在它的上面开发 出各种全文搜索的应用来。

Lucene在国外有很高的知名度,现在已经是Apache的顶级项目, 在国内,Lucene的应用也越来越多。

读法就直接照字面读就行了,因为不是一个本来就有的单词,所以只要读得不太离谱就行了 ------解决方案--------------------------------------------------------我读的是 路森呢 哈哈 ------解决方案--------------------------------------------------------建议安个金山词霸之类的,它里面有朗读功能! ------解决方案--------------------------------------------------------又长见识了------解决方案--------------------------------------------------------卢斯呢

用Lucene查询数据库,高手请进,急!!!谢谢!!!

lucene不能直接查数据库,你得把数据库的东西取出来写到索引文件里头去。

可以先把数据库里的东西写到resultset中然后在一个一个取出来写到索引里。

注意每个document里面写数据库里一行的数据,例如数据库有id和name两列,则每个document都包含一个id和一个name信息。

这样你搜“奔驰”时,才能显示所有相关信息。

具体建立索引和搜索的实现网上都有相关代码,搜一搜就可以了。

lucene 原理

public static void addIndex(java.sql.ResultSet rs) throws SQLException, CorruptIndexException, IOException{ Analyzer luceneAnalyzer = new StandardAnalyzer(); //实例化一个标准分析器 (对字符串进行索引分析的算法) 你可以把它看作一个分词器 IndexWriter indexWriter = new IndexWriter("e:/weihai/sou", luceneAnalyzer, true);//实例化一个输出流,true重新创建,false增量创建 while(rs.next()){ //java.sql.ResultSet rs 你要建立索引的对象 Document document = new Document(); // 实例化一个文档对象 这个文档可以说是保存索引内容的文档 String goods_id = rs.getString("goods_id"); //这是需要建立索引的实体对象 if(goods_id==null) goods_id=""; Field shopid = new Field("shopid",rs.getString("shop_id"),Field.Store.YES, Field.Index.NO);//一个完整的索引多个域组成(field) 在这里有3个 分别是shopid,以及下面的goodsid,FieldBody; 我打个比方说,我们对一篇文章做全文检索的索引,我们可以分别把文章的保存路径,文章的标题,文章的正文内容作为3个field,然后一起通过下面的document.add保存到一个Document对象中,那么在检索的时候,我们在正文中查找到目标字段,同时我们可以做到把该文档的保存路径以及标题也取到; Field goodsid = new Field("goodsid",goods_id,Field.Store.YES, Field.Index.NO);//不做索引 Field FieldBody = new Field( "body" , rs.getString("shopname")+" "+rs.getString("goodsname"), Field.Store.YES,Field.Index.TOKENIZED,Field.TermVector.WITH_POSITIONS_OFFSETS); document.add(shopid); document.add(goodsid); document.add(FieldBody); //把索引字段添加到行对象中 indexWriter.addDocument(document); //把一行信息加入到输出流中 } indexWriter.optimize(); /mit 写出到硬盘上 indexWriter.close(); // 关闭流 } public static void main(String[] args) throws CorruptIndexException, ClassNotFoundException, SQLException, IOException { queryDB(); System.out.println("创建索引成功"); } //如果还有什么不明白的可以直接M我,有时间的话,可以回答一点简单的问题 }

imidc:$88/月,e3-1230/16G内存/512gSSD/30M直连带宽/13个IPv4日本多IP

imidc对日本独立服务器在搞特别促销,原价159美元的机器现在只需要88美元,而且给13个独立IPv4,30Mbps直连带宽,不限制流量。注意,本次促销只有一个链接,有2个不同的优惠码,你用不同的优惠码就对应着不同的配置,价格也不一样。88美元的机器,下单后默认不管就给512G SSD,要指定用HDD那就发工单,如果需要多加一个/28(13个)IPv4,每个月32美元...官方网站:https:...

云步云72.5元/月起云服务器,香港安畅/葵湾/将军澳/沙田/大浦CN2机房,2核2G5M

云步云怎么样?云步云是创建于2021年的品牌,主要从事出售香港vps、美国VPS、日本VPS、香港独立服务器、香港站群服务器等,机房有香港、美国、日本东京等机房,目前在售VPS线路有CN2+BGP、CN2 GIA,香港的线路也是CN2直连大陆,该公司旗下产品均采用KVM虚拟化架构。目前,云步云提供香港安畅、沙田、大浦、葵湾、将军澳、新世界等CN2机房云服务器,2核2G5M仅72.5元/月起。点击进...

趣米云月付460元,香港CN2云服务器VPS月付低至18元

趣米云早期为做技术起家,为3家IDC提供技术服务2年多,目前商家在售的服务有香港vps、香港独立服务器、香港站群服务器等,线路方面都是目前最优质的CN2,直连大陆,延时非常低,适合做站,目前商家正在做七月优惠活动,VPS低至18元,价格算是比较便宜的了。趣米云vps优惠套餐:KVM虚拟架构,香港沙田机房,线路采用三网(电信,联通,移动)回程电信cn2、cn2 gia优质网络,延迟低,速度快。自行封...

lucene为你推荐
好私服请教下玩好SF有哪些要点么?支个招呗...百度云论坛哪里需要资源网盘分流?论坛、网站介绍一个……trapezoid梯形中最多有多少个直角?安全防护谈谈如何才能做好自身安全防护豆瓣fm电台豆瓣有个电台 是专门读一些好听的文章的 怎么找不到了运行时错误1004ipad下载时出现错误1004是怎么回事?该怎么解决?高质量图片iphone上有什么高质量的壁纸APP吗系统登录界面谁知道XP系统的登录界面。和启动界面怎么更改的 急小蓝条戴尔系统开机动画里的小蓝条怎么去阶乘函数C语言编写一个求n阶乘的函数,在主函数中输入n,调用函数求n阶乘。。谢谢
中国域名交易中心 locvps 香港服务器99idc 腾讯云数据库 空间打开慢 浙江独立 台湾谷歌网址 工信部icp备案号 100m空间 双线主机 流量计费 免费测手机号 免费dns解析 raid10 空间服务器 卡巴斯基试用版下载 睿云 asp空间 电信主机托管 脚本大全 更多