.net lucene 实战搜索(一)------ 前言

本文分享了使用Lucene进行高效搜索的经验,对比数据库查询,Lucene在处理大量数据时表现更优,介绍了通过双索引机制解决实时更新问题,并预告了后续章节的内容。
  

   lucene做了很长时间的开发,今天写一些出来与大家分享,可能有不全和不对的地方,欢迎一起探讨!
    
做项目的时候,总会搜索查找的需求,在接触luncene之前,大家用的无非是like,全文索引之类的。对于数据库的这种查询操作,不但效率低,以占用的大部分的性能。我们总是在不断的想方设法的提高系统的速度,但我们的大部分时间可能都花在数据库上。原因很简单:只要你的程序没有执行逻辑上的错误,可能你是个新手,多声明的几个变量(非重量级),多执行些操作,但效率不是太明显。如果你的一个索引,临时表,存储过程或是触发器有问题,这可能是整个系统瓶颈甚至是引发系统瘫痪的罪魁祸首(有点跟现在的硬盘速度瓶颈类似)。

我曾经作过这样的试验:有约20万条文章,用like 去查找用了15秒,随便说一下数据库中字段超过大小(好像是1000)就无法使用索引了。而搜索只需30ms左右,事实上当索引文件不超过300M(相当于100万篇文章,每篇文章在万字以上)这个值很稳定。搜索的速度快,但是也有缺点,就是不能及时更新,因为必须索引数据,而且更新频率不可过高,索引更新时lucene是无法进行查询的,针对这种情况,我目前是通过临时索引解决的:就是有两份索引,一个是真实的,一份是临时。更新时先更新临时,临时更新完毕,覆盖真实的。在这个过程之中肯定有一个是可以使用的。

搜索一般是使用在大批量数据机和高效率的查询上,比如淘宝网的商品查询。Lucene本身原来是java的开源项目,而后由达人翻译成了c#版本,有兴趣的朋友可以到http://lucene.apache.org/java/docs/index.html看看。先说到这吧。接下来的章节:
        .net lucene 实战搜索(二)------ 基本

           .net lucene 实战搜索(三)------ 分词与索引(1)
           .net lucene 实战搜索(四)------ 分词与索引(2)
           .net lucene 实战搜索(五)------ 分词与索引(3)
           .net lucene 实战搜索(六)------ 性能深入
           .net lucene 实战搜索(七)------ 搜索构建(1)索引
           .net lucene 实战搜索(八)------ 搜索构建(2)搜索逻辑(1)
           .net lucene 实战搜索(九)------ 搜索构建(2)搜索逻辑(2)
           .net lucene 实战搜索(十)------ 问题与总结

  .net lucene 实战搜索(二)----- 基本之索引 : http://www.cnblogs.com/xuwenzhuo/archive/2007/10/06/915280.html
.net lucene 实战搜索(三)----- 基本之搜索 : http://www.cnblogs.com/xuwenzhuo/archive/2007/10/11/918246.html

转载于:https://www.cnblogs.com/xuwenzhuo/archive/2007/10/06/915169.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值