日期:2014-05-18 浏览次数:20877 次
<!-- 同步更新索引 --> <bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop"> <property name="compass" ref="compass" /> <property name="gpsDevices"> <list> <bean class="org.compass.spring.device.SpringSyncTransactionGpsDeviceWrapper"> <property name="gpsDevice" ref="hibernateGpsDevice" /> </bean> </list> </property> </bean> <bean id="compassTemplate" class="org.compass.core.CompassTemplate"> <property name="compass" ref="compass" /> </bean> <!-- 定时重建索引(利用quartz)或随Spring ApplicationContext启动而重建索引 --> <bean id="compassIndexBuilder" class="cn.zc.service.impl.CompassIndexBuilder" lazy-init="false"> <property name="compassGps" ref="compassGps" /> <property name="buildIndex" value="true" /> <property name="lazyTime" value="10" /> </bean>
------解决方案--------------------
这个不难吧,自己写个
1. 完成更新索引的程序;这个相信你已经写完了
2. 用定时任务触发这个更新程序;quartz或timer实现。
------解决方案--------------------
1.quartz
2.solr 貌似有。。忘了。
------解决方案--------------------
sorry。solr好像没有定时的设置,只是搜索服务器而已。。。
------解决方案--------------------
收藏啦!
太短了!
------解决方案--------------------
1 首先可以用quartz实现定时
2 用compass实现
------解决方案--------------------
做个系统定时任务也可以。
另:借宝地一问,lucene创建索引的时候好像没有用到分词,能不能查看它创建索引时,将一个记录的倒排索引,都提取出哪些词了?特别是中文词。
这一直是我的一个困惑。
------解决方案--------------------
没用过,不过问题是,当你定时时,是更新所有的,还是部分的.更新所有,如果数据太大,怎么办.
怎么更新修改或删除的数据的索引
------解决方案--------------------
我也一直在思考这个问题!
------解决方案--------------------
看了大家的想法,受益颇多,感谢感谢。
------解决方案--------------------
我也在学习lucene
想做个搜索引擎
希望那位大虾指教指教
------解决方案--------------------
之前好似看JE上有人说,一周更新所有索引.每天更新部分索引(我猜是新增的).可对删除,修改索引的更新就不知道了.Solr是可以更新,不过看它的过程相当复杂,没去用.
------解决方案--------------------
我是做的个windows services
把要更新的数据库列的ID (比如一条新闻的内容修改了 就把这个新闻的ID丢过去)
存到一个表A
服务每X秒 去读一次 把表A所有的记录 加到一个队列 然后一个个去更新索引文件
------解决方案--------------------
lucene 索引的更新其实是先删除 旧的索引编号记录 然后在添加新的索引记录
每周末服务设定一次优化索引操作
------解决方案--------------------
Lucene有增量索引这一方式的,也可以使用定时全部索引。
Lucene的compass比较好用,简单些。如果需要例子给我留言,我发给你。
------解决方案--------------------