小弟 最近在做有关lucene的东西,
想请教大家几个问题:
1,关于lucene的中文分词器,哪个比较好呢?! 网上的说法不一,测试结果也不一样,真的不知道相信谁了,希望做过的朋友给点建议,对了 我是要做个垂直搜索引擎!2,关于lucene检索数据库方面,需要注意的主要地方都有哪些呢?!(查询结果缓存...)3,关于lucene的优化方面,我对于hits结果集缓存方面的处理,有什么好的方式么?!是存在硬盘中缓存?!设置缓存目录还是放在内存中缓存??!谢谢 大家 ! 期待你们的解答!
想请教大家几个问题:
1,关于lucene的中文分词器,哪个比较好呢?! 网上的说法不一,测试结果也不一样,真的不知道相信谁了,希望做过的朋友给点建议,对了 我是要做个垂直搜索引擎!2,关于lucene检索数据库方面,需要注意的主要地方都有哪些呢?!(查询结果缓存...)3,关于lucene的优化方面,我对于hits结果集缓存方面的处理,有什么好的方式么?!是存在硬盘中缓存?!设置缓存目录还是放在内存中缓存??!谢谢 大家 ! 期待你们的解答!
分词要看你的业务数据的需求了,跑丁就不错的哦。当然,中科院的也算可以了。
你的问题能 再具体些吗?
呵呵,这个就要看你自己的业务需要了。
这里可以综合考虑,可以内存+数据库+硬盘的方式
其实数据库现在也是可以无限扩盘,据我所知oracle就可以不断的增加硬盘来拓宽存储容量。mysql可以考虑采用replication啦。
一般在内存里可以拥有很不错的执行速度,但内存始终会有临界点的,一旦突破临界点就会变得很慢了。因为你没有多余的内存执行其他的task了。
至于用硬盘的话,就会面临io的问题。这时考虑异步io,主要方式io阻塞。硬盘的效率肯定是低于内存的,在内存效率上不去的时候可以考虑组合硬盘。
最后,数据库真是很不错的存数据的地方呢。用数据库存放索引是个不错的主意,可以考虑下。毕竟数据库在查询效率等各方面都是优于搜索引擎lucene的,除了全文检索这块。
我想按照26个字母来建立索引,得到搜索的关键字之后先判断汉字的拼音首字母,然后去这个拼音首字母的索引里面搜索。 但是问题是 我怎么才能把包含所有关键字的索引建立在一起呢! 或者是合并到一起呢?!因为分类比较多,索引也比较大,所以我想用这个做第一次的粗过滤!
小弟初接触 希望大家多关照
当我数据库有变化了,是实时的更新索引 还是定时更新,如果实时更新 那么删除的时候怎么办呢!?
也是实时更新索引么?! lucene的锁怎么来处理的, 还有对于并发访问的时候怎么办,(正在删除索引的时候,有人搜这个关键字... 或者是刚添加的资料正在更新索引不能搜索到最新的结果...)希望大家能够给我点指导!
在更新索引的时候,lucene会建立排它锁。