[lucene] Lucence 搜索技术

lym6520 2009-03-13
对于Lucence搜索技术,早前几个月就已经接触过了,也看了不少资料,这周才用上这个了不起的搜索技术,做出来的效果更Google差不多,不过技术肯定没人家的好,主要是数据量不大,很适用,发两张效果图看看:
其实效果是达到了,不过性能还待优化,自然速度不会比Google的差,当然最主要的原因是我们数据量小。
    呵,现在谈谈创建索引、增加索引、修改索引、删除索引时要注意的一些细节吧!
    创建索引的时候我们要先声明一个IndexWriter对象,这时要注意了,实例化一个IndexWriter的时候需要三个参数,第一参数是索引存放的目录,第二个参数是解析器类型,最主要的是第三个参数create是布尔型的,当创建新索引时应当是true,当我们要修改、删除、添加索引时,应当要设成false,否则当你搜索的时候会出现“nDocs must be > 0”的错误,索引在对索引进行增、删、改的时候要特别小心。
IndexWriter writer = new IndexWriter(dir, getAnalyzer(),create);

现在说说怎么实现类似Google搜索效果吧!
     要实现这样的效果,首先我们需要一个表来保存用户输入的关键字,通过累积,当用户输入“abb”时,若数据库已经储存了这类关键字,就找出前十条记录,然后到索引里查找结果,匹配的记录总数,然后返回。当然这要利用ajax技术咯!我们还做了缓存的处理,对于用户输入过的关键字不进行重复搜索,这减少了通信的次数,自然是提高了性能。
fys124974704 2009-03-16
我想问一下,是不是实时做的索引,还是有延迟在里面?
lym6520 2009-03-16
fys124974704 写道
我想问一下,是不是实时做的索引,还是有延迟在里面?

当然是实时的,修改、添加、删除都是实时跟新的
fys124974704 2009-03-16
lym6520 写道
fys124974704 写道
我想问一下,是不是实时做的索引,还是有延迟在里面?

当然是实时的,修改、添加、删除都是实时跟新的

请问网站的数据是用户录入还是管理员录入,平均每天录入的数据是多少呢?因为我曾经也做过实时的索引操作,但是效果不怎么好!
lym6520 2009-03-16
fys124974704 写道
lym6520 写道
fys124974704 写道
我想问一下,是不是实时做的索引,还是有延迟在里面?

当然是实时的,修改、添加、删除都是实时跟新的

请问网站的数据是用户录入还是管理员录入,平均每天录入的数据是多少呢?因为我曾经也做过实时的索引操作,但是效果不怎么好!

数据是由用户录入的,大概每天100~200条的数据量吧,目前我们还处在适用阶段
fys124974704 2009-03-16
lym6520 写道
fys124974704 写道
lym6520 写道
fys124974704 写道
我想问一下,是不是实时做的索引,还是有延迟在里面?

当然是实时的,修改、添加、删除都是实时跟新的

请问网站的数据是用户录入还是管理员录入,平均每天录入的数据是多少呢?因为我曾经也做过实时的索引操作,但是效果不怎么好!

数据是由用户录入的,大概每天100~200条的数据量吧,目前我们还处在适用阶段

这样的架构你估计能顶住多少数据量/天?假如你是在录入数据的时候同时保存到数据库和索引库,建立索引需要一定的时间,如果同时并发应该会出现排队,请求响应的时间会比较长,这只是我的猜测,不知道是否正确!
lupingui 2009-03-16
我想知道输入信息后的那个下拉框的效果是怎么实现的。我知道数据怎么来的,但是那个层的效果一直做不出来。郁闷。
huangkun1123 2009-03-16
lym6520 写道
fys124974704 写道
我想问一下,是不是实时做的索引,还是有延迟在里面?

当然是实时的,修改、添加、删除都是实时跟新的



想知道如何处理并发的?
lym6520 2009-03-16
fys124974704 写道
lym6520 写道
fys124974704 写道
lym6520 写道
fys124974704 写道
我想问一下,是不是实时做的索引,还是有延迟在里面?

当然是实时的,修改、添加、删除都是实时跟新的

请问网站的数据是用户录入还是管理员录入,平均每天录入的数据是多少呢?因为我曾经也做过实时的索引操作,但是效果不怎么好!

数据是由用户录入的,大概每天100~200条的数据量吧,目前我们还处在适用阶段

这样的架构你估计能顶住多少数据量/天?假如你是在录入数据的时候同时保存到数据库和索引库,建立索引需要一定的时间,如果同时并发应该会出现排队,请求响应的时间会比较长,这只是我的猜测,不知道是否正确!

我怎么没想到这个呢,虽然添加一条索引速度很快,但是并发问题导致了等待,兄台领教了,看来不能实时索引了。。。
lym6520 2009-03-16
huangkun1123 写道
lym6520 写道
fys124974704 写道
我想问一下,是不是实时做的索引,还是有延迟在里面?

当然是实时的,修改、添加、删除都是实时跟新的



想知道如何处理并发的?

并发的问题还没考虑过哦,,不过现在已经在考虑当中了
Global site tag (gtag.js) - Google Analytics