[help]Drupal如何才能支持中文搜索

1、问题:我的Drupal不能搜索
2、症状:英文搜索没有结果;中文搜索根本就不能用,都是乱码;
3、系统配置:WinXP sp2, Drupal 4.6.1, Apache 2.0.53, MySQL 4.1.11, PHP 4.3.11;
4、Drupal的相关配置:本地运行Drupal;数据库使用UTF-8编码;已打开search module;

我在drupal.org看到你的留言“It may be caused by your settings (e.g. did you configure your cron job?)”,但我不知道cron到底该怎么设置,cron是不是必须在linux等系统才能用啊?

首先到 管理->设置->搜

首先到 管理->设置->搜索 中看一下你的 Indexing Status,Drupal的内容必须先被Index之后,才能搜索,而Index是靠cron来自动完成的,如果你的Index Status 仍然是0%,那你什么都搜索不到的。

你可以通过访问 http://你的域名.com/cron.php 来激活cron job,连续激活若干次,你就可以看到indexing status的增长了。如果你的主机不是linux,不可以设置cron job,你可以安装一个poormanscron 模块来自动运行cron job,它的原理是通过用户的访问激发cron job。

如果这一切都不奏效,你仍然可以使用SQL Search (Trip Search)模块,这个模块是直接搜索数据库的,不用使用cron job协助,搜索的效率非常高。在以前drupal不支持汉语搜索的时候,我使用的就是这个模块。

中文支持问题

原来是我没有激活cron job,Index Status是0%!
现在英文的搜索问题解决了!太棒了!
可中文搜索却是乱码,怎么回事呢?

另:我现在是在本地使用,数据库编码采用utf8_general_ci,但国内的很多虚拟主机都只是提供gb2312编码,这样的话:Drupal使用gb2312编码会不会产生问题?

中文搜索出现什么样

中文搜索出现什么样的乱码啊?能不能说的具体些?

我觉得数据库的编码问题不是很大,你可以打开Drupal的数据库文件看一下,里面并没有定义编码。当然,如果你使用的是MySQL 4.1, 当你把Drupal数据导出的时候,数据表的最后一行参数会设定数据表的编码,导出数据的时候注意设置编码或是选择 mysql4.0 compatible就可以了。

中文搜索的症状

比如我用关键字“中文搜索”,点搜索后,搜索框中是一连串的问号和其他符号“??-????????䡩”,而且没有搜索结果。

现在我还发现一个问题:如果我直接修改theme的page.tpl.php,把其中的“search”改为“搜索”,这个按钮也不能正常显示。我使用spreadfirefox这个theme。

关于第一个问题,你

关于第一个问题,你用的是那个版本的Drupal,4.6.0之前的Drupal对中文搜索的支持不是很好。

第二个问题,不应该去直接改动 page.tpl.pho中的 字符串,应该用管理->本地化 来修改为翻译的英文字符串,把这个字符串搜索出来后手动添加翻译即可。

看了Steven的回复,还是不知道该怎么做!

#11 submitted by Steven on May 31, 2005 - 02:16

Search.module has an indexing preprocessing hook. For Chinese/Japanese searching, this is where you need to hook in a word splitter with an extra module.

Due to the way search works (by indexing words), Chinese / Japanese searching will never work out of the box.

这个extra module到底是什么?

为什么你们都不需要这个extra module就可以支持中文搜索,而我需要呢?

Steven的解答和你的问

Steven的解答和你的问题好像关系不是特别的大,我觉得他说的是这样一种情况,应为汉语词语之间没有空格,搜索的时候无法准确判断keyword。举个例子,如果你在我的网站里搜索wiki,你可以得到一些结果但是并不是全部结果,如果使用wiki* (keywords加通配符)才能得到所有的结果,因为有的时候把wiki与汉字连在一起写的时候搜索函数无法判断出这个关键字,必须用其他的方式把关键字分裂开。

如果在Drupal 4.6.0中你仍然无法使用search,那不如使用trip search吧,和search的效果一样。

我还是在drupal提交问

我在drupal也提交了问题:
http://drupal.org/node/24793

我用的就是最新的4.6.1

第一个问题:我用的就是最新的4.6.1
第二个问题:明白了:)

Post new comment

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.