自我惭愧:
1、信息添加者总是说添加的内容在搜索时搜索不到,是因为我还没来得及搞清楚怎么定时自动重建索引。
2、应该有增量索引,新添加的信息应该能及时被搜到,但如果同时新增很多信息时会有性能问题
3、应定时重建索引?(自己想的,不知道为何要重建,凭感觉吧。可能是初期数据量小,重建一次的时间比较短,如果数据量大了不知道能不能重建索引)
4、现在的状况是:只是使用solr来建立搜索服务,其较深的原理知识不懂,只知道这么安装,这么配置,ta就能索引我想要索引的表,通过接口能查询出结果,但底层的东西真的是了解太少了,这涉及到lucene,搜索引擎的详细知识,现在还兼职着开发,没时间去看啊。用的是data-import-handler,配置还算方便,我们以后再单独攻克吧。
5、哪些需要全文搜索,哪些数据库搜素即可搞定,在企业搜索这一块规划的时候就得很有前瞻和经验性,我目前缺乏。
进入正题:
目标:对能进行全文搜索的几个表进行每晚定时重建solr索引
前提:各个单独的core已经配置好并可以访问
如:
定时重建索引
我能想到的就两种本办法
- 编写linux定时任务,在指定时间访问full-import的链接,对各个core进行重建
好吧学习cron先一个小时。atd服务的at命令可以令任务只执行一次,crond服务的crontab命令则是循环之行
该方法就是编写linux的crontab定时任务吧,在规定时刻运行full-import命令,
http://url/solr_app_home/coreX/dataimport?command=full-import&clean=false&other_args
代码如
- 参考文章:Solr Data Import Hander Scheduler ,http://www.cnblogs.com/ezhangliang/archive/2012/04/11/2441945.html 这位大侠的做法
我是一直觉得solr应该有配置定时自动索引的地方的,苦于一直没有谷百到,只能全量重建了哎,悲乎
今天试试第一种方法吧,数据量大了,估计用data-import是不行的,仍旧得找新方法实现,但当前whatever就只能这样了
对某个表 增加了数据,修改了数据后,应该触发 更新索引的动作
但不是一修改就更新,那服务器会垮掉的。
deltaImport会要求数据表有last_modify之类的字段,以判断是否有更新
然后定时更新索引
一般的字段类型的提交就jquery的ajax提交足够了,设计图片、文件的ajax提交可以用ajaxForm
实时的增量更新,我还没弄懂,等可以了再补充该篇blog