今天旗下的http://www.anetb.com需要一个支持中文分词的搜索页,原drupal的太烂了,
我的做法是:结合xunsearch实现drupal commerce下的中文搜索
测试页:http://www.anetb.com/tsearch/demo/commerce/search.php , 可输入“奶粉”,我的站准备做这个,暂时数据还不多
drupal 7 私有模块下载页:http://www.trackself.com/wp-content/xunsearch-d7-commerce.tar , 也许做得好后会放上drupal官网吧,不过我人太懒,再说吧
说实话,用drupal很久了,drupal的大缺憾之一,必然是搜索,接过很多商业站的单子,客户抱怨也在这里,英文还好,中文就是……
apache solr很烂,而且安装不是一般的复杂,我安装了N次,放弃!而且听说中文分词不是一般的复杂。
而模认的drupal search ,或者说commerce安装包自带的搜索也不咋的!
search api模块……呵呵,理想很宏大的模块,用起来,还不如views模拟的search来得方便,更别说中文支持了
相对而言,xunsearch做得很好很强大,可惜的地方是xunsearch没有现成的drupal模块,
于是自己写一个
1.安装xunsearch,不是一般的简单,会linux的就能安装成功
按着官网的http://www.xunsearch.com/doc/php/guide/start.installation 一步步做就是了
2.建立一个xunsearch的搜索数据库
直接复制官网的demo.ini数据库到同名目录,
centos 6默认安装后demo.ini在/usr/local/xunsearch/sdk/php/app/
直接复制demo.ini 为commerce.ini
好吧,别懒,修改一下配置,使之适合drupal commerce
共享我的出来:就是上面下载连接下载后的commerce.ini
3.建立一个drupal模块,用于同步索引,主要是hook_node的几个api啦,原理简单
即实现:当drupal有改动的时候,立即xunsearch的索引就能改动过来,我测试过,很快,小于20秒就更新了。
共享自己的模块:http://www.trackself.com/wp-content/tsearch.tar
其内的
tsearch文件夹是drupal 7 模块,可以放在sites/all/modules下
import.php : 批量导入现有的drupal nodes , 建议放在/demo/文件夹下,否则可能要改改第一行,这个文件最有用了,帮助你把旧的node、product全部导入xunsearch,马上就能搜索了
clear.php : 批量导入现有的drupal nodes , 建议放在/demo/文件夹下,否则可能要改改第一行
search.php : 将搜索变为数据,方便我们调回drupal
4.安装模块后,直接就能用在drupal 7 + commerce上了
如果你不运行import.php的话,那么必须是新的node才有效!
我还没在其他commerce上测试过, good luck
我还没有写直接在drupal页上显示搜索结果的页面,因为每个用户的搜索页都可能不一样,
对我的站来说,未来搜索页会出现在http://www.anetb.com/searchpage,不过我还没套好
目前我还在使用http://www.anetb.com/tsearch/demo/commerce/search.php (注,这个搜索界面是xunsearch生成的,有兴趣请看官网http://www.xunsearch.com/doc/php/guide/util.skel)
6.该模块还会更新,目前没有管理界面、直接结合drupal的输出界面,也许在未来我会更新代码,详细请看下面的连接
http://www.trackself.com/archives/2539.html 有什么问题请到我博客留言或者加我们的群
good luck
QQ群:227600605 关于drupal anywhere \ drupal commerce\ drupal crawler cms email:lihaojiang_1@163.com buy me a coffee:http://me.alipay.com/trackself
SOLR
我用的solr 觉得也还可以, 你这个我一会试试。 有需要的其他小伙伴 我可以吧配置好的SOLR发你们。在QQ群里名字 东方胡神