今天旗下的http://www.anetb.com需要一个支持中文分词的搜索页,原drupal的太烂了,

我的做法是:结合xunsearch实现drupal commerce下的中文搜索

drupal.org官网的sandbox:

https://drupal.org/sandbox/haojiang/2226967

drupal.org官网模块fullproject,正在申请:https://drupal.org/node/2234637

申请进度,要将这个列表处理完:http://pareview.sh/pareview/httpgitdrupalorgsandboxhaojiang2226967git

[drupal 7 私有模块下载页及测试页:]

我暂时没有做更详细的后台设置界面,目前正在努力完善search_api版

(1)search_api版:

有默认的search_api的管理界面,能实现清空、重建索引、创建字段索引,方便管理!

支持search_api的所有功能,能快速用代码定制,默认安装后支持“文章类型”的字段索引(facet功能)

也可以联系我帮你定制,例如分类、特定的CCK字段等(或者你看下面的开发过程,查看手动定制的方法)

http://drupalcode.org/sandbox/haojiang/2226967.git/tree

search_api版下载: http://www.trackself.com/wp-content/xunsearch.zip (尽量用下面的git下载最新版)

测试地址:http://xs.trackself.com/?q=testxunsearch&search_api_views_fulltext=1

开发过程:search api 开发与 xunsearch第三方搜索引擎结合

git repository:

http://git.drupal.org/sandbox/haojiang/2226967.git ```(尽量用git下载最新版)
OR

git clone –branch 7.x-1.x YOURNAME-IN-DRUPAL.ORG@git.drupal.org:sandbox/haojiang/2226967.git xunsearch

(2)hook_node版:

已经完善,估计没什么好改的了,但功能一般般,不支持facet,仅支持全文搜索:

hook版下载:```http://www.trackself.com/wp-content/xunsearch-d7-commerce.tar``` ,

测试页: 可输入“奶粉”,我的站准备做这个,暂时数据还不多

测试页 :www.anetb.com/search/粉

[介绍]

xunsearch是一个不可多得的中文分词搜索引擎,安装简单、功能强大,是目前我测试过的几个搜索引擎中最好用的。

国外站做搜索,中文分词是一个严重的问题

说实话,用drupal很久了,drupal的大缺憾之一,也是搜索,接过很多商业站的单子,客户抱怨也在这里,英文还好,中文就是……

apache solr很烂,而且安装不是一般的复杂,我安装了N次,放弃!而且听说中文分词不是一般的复杂。

而模认的drupal search ,或者说commerce安装包自带的搜索也不咋的!

相对而言,xunsearch做得很好很强大,可惜的地方是xunsearch没有现成的drupal模块,

[安装xunsearch:]

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 为*.ini,上面的search_api版用d7.ini , hook_node版用commerce.ini版

下载文件中均有示例。

[search_api版的安装过程: ]

按search_api的标准做法啦,search_api创建搜索页,下面有个视频教程

http://prezi.com/usetpzmi1gk8/search-api-facet-api-panopoly-on-drupal-7/

即用views来做搜索,对views熟的话,很容易搞定,不熟的话看看上述的视频借鉴一下。

即首先建立searver让drupal认出xunseach,然后建立索引
然后建立views\block,或者用panel实现
下文是一个用panel实现的办法,用于普通的search_api的,完全适用于本文,将文中的server改成xunsearch即可

[hook_node版的安装过程: ]

直接安装好可,关键是上述xunseach安装要做好,ini文件名就得叫commerce,或者你自己改*.module将ini文件对应起来。

我暂时没有做后台管理界面

上述的压缩包内的tsearch文件夹是drupal 7 模块,可以放在sites/all/modules下

import.php  : 批量导入现有的drupal nodes  , 建议放在/demo/文件夹下,否则可能要改改第一行,这个文件最有用了,帮助你把旧的node、product全部导入xunsearch,马上就能搜索了

clear.php : 批量导入现有的drupal nodes  , 建议放在/demo/文件夹下,否则可能要改改第一行

search.php : 将搜索变为数据,方便我们调回drupal

安装模块后,直接就能用在drupal 7 + commerce上了

如果你不运行import.php的话,那么必须是新的node才有效!

[深圳drupal meetup上展示该模块的细节]

.依赖的模块:```facet\views\search_api……```

.安装、配置,依赖VIEWS

/usr/local/xunsearch/sdk/php/lib/XS.php

vi /usr/local/xunsearch/sdk/php/app/d7.ini

drush dis -y xunsearch && drush pm-uninstall -y xunsearch && drush en xunsearch -y

(searchApi的安装配置:http://prezi.com/usetpzmi1gk8/search-api-facet-api-panopoly-on-drupal-7/)

.延时的问题,大约10~15秒

.分词不完美的解决

.bugs needs to be fixed

.开发细节略带一提

[后续工作]

 我最近正在为这个模块制作管理界面,因为手头上正好有个commerce 大项目,所以上述两版本均会直接支持commerce

未来我会更新代码,详细请看下面的连接

http://www.trackself.com/archives/2539.html
```有什么问题请到我博客留言或者加我们的群

good luck

更多drupal anywhere文章请看:drupal anywhere,drupal 6~8 快速上手文章总结

QQ群:227600605

关于drupal anywhere \ drupal commerce\ drupal crawler cms

email:lihaojiang_1@163.com buy me a coffee:http://me.alipay.com/trackself