如何用lucene对数据库建立全文检索
想自己做一个搜索页面,呈现效果像百度那种,对搜索技术很不了解,最近看了一些文章,考虑用lucene来做,不知是否还有更好的办法? --------------------编程问答-------------------- sf --------------------编程问答-------------------- lucene有多少人用到实际项目中呢?有没有风险呢?其实我最近也在考虑这个问题,所以同问大家.
另外,希望可以跟楼主交流一下.
MSN:cime63#hotmail.com --------------------编程问答-------------------- 用lucene就不要用数据库了,直接用文件存储呗~ --------------------编程问答-------------------- 楼上的星星,说一下我们网站的情况,请给点建议吧:
信息发布类网站,每天添加的信息量不少,添加后不怎么做修改的.
每天查询(模糊查询)的次数很多.
现在模糊查询的那个表是100万条左右的记录.
window2003server+mssql2000+asp
现在的问题是网站速度相当慢,且经常出现死锁及阻塞现象.
最容易死锁的就是模糊查询那儿.
请教楼上的大侠,这种情况下,如果要提速且避免死锁之类的情况,怎么处理比较好? --------------------编程问答-------------------- lucene是事先作索引的,根本不用实时检索
建议内容全部改用文件存储,数据库中只存放管理相关信息即可 --------------------编程问答-------------------- lucene的稳定性如何?有没有风险?
lucene.NET稳定性如何?而且据说它是收费的? --------------------编程问答-------------------- lucene是可以做增量索引的.楼主这种没有问题 --------------------编程问答-------------------- 最好不要做实时的检索吧 --------------------编程问答--------------------
有时候有些数据只需动态的取出,没必要搞成文件的形式存储,已经在数据库里有数据了,再搞成文件的形式,如果数据量很大的时候,那磁盘空间的增加又会导致管理成本的增加,再说lucene好像可以只要源数据能转化成文本的形式就可以索引吧,所以我感觉用lucene直接对数据库进行索引还是可行的.
我也没有做过lecene的数据库全文搜索,这只是我自己的一点想法,希望大家一起讨论下 :) --------------------编程问答--------------------
首先,数据库死锁现像可以用事务回退方式解决.
至于lz的问题可以从两方面着手解决:
1.如果硬件方面允许的话,可以考虑分布式处理(也就是加服务器,然后做负载均衡)
2.lucene的检索速度确实比数据库快很多,不过它只能先对记录进行索引(也就是说用户发布的信息每次不能及时反映到lucene搜索结果中);
lz可以考虑数据库和lucene结合的搜索方式,将数据库记录分为两部分搜索:
一部分是最近发布的数据,用现在程序对数据库进行搜索;
一部分是老数据,将其建到lucene索引,存为历史搜索(老数据建完索引以后就清空数据库,或者存到另外的表里面,这样不影响搜索速度).
至于老数据和新数据的划分点和体现方式lz自己去考虑. --------------------编程问答-------------------- 完全同意10的说法,顶 --------------------编程问答-------------------- 楼上的牛人,08年的帖子你都能顶上来,人才啊!
补充:.NET技术 , ASP.NET