Lucence 搜索技术

对于Lucence搜索技术,早前几个月就已经接触过了,也看了不少资料,这周才用上这个了不起的搜索技术,做出来的效果更Google差不多,不过技术肯定没人家的好,主要是数据量不大,很适用,发两张效果图看看:
[img]http://lym6520.iteye.com/upload/attachment/84065/132e4c7a-0648-34dc-bb49-d0c66ba163c6.gif[/img]
[img]http://lym6520.iteye.com/upload/attachment/84067/4f3fbfaf-05a3-33ed-ba15-1735f09afb79.gif[/img]

其实效果是达到了,不过性能还待优化,自然速度不会比Google的差,当然最主要的原因是我们数据量小。
呵,现在谈谈创建索引、增加索引、修改索引、删除索引时要注意的一些细节吧!
创建索引的时候我们要先声明一个IndexWriter对象,这时要注意了,实例化一个IndexWriter的时候需要三个参数,第一参数是索引存放的目录,第二个参数是解析器类型,最主要的是第三个参数create是布尔型的,当创建新索引时应当是true,当我们要修改、删除、添加索引时,应当要设成false,否则当你搜索的时候会出现“nDocs must be > 0”的错误,索引在对索引进行增、删、改的时候要特别小心。

IndexWriter writer = new IndexWriter(dir, getAnalyzer(),create);

现在说说怎么实现类似Google搜索效果吧!
要实现这样的效果,首先我们需要一个表来保存用户输入的关键字,通过累积,当用户输入“abb”时,若数据库已经储存了这类关键字,就找出前十条记录,然后到索引里查找结果,匹配的记录总数,然后返回。当然这要利用ajax技术咯!我们还做了缓存的处理,对于用户输入过的关键字不进行重复搜索,这减少了通信的次数,自然是提高了性能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值