2.5. ASPseek对中文的支持

中文、日文、韩文等多字节文字不同于英文等单字节语言,是多字节语言。我们都知道英文是依靠空格和标点符号将单词分割开,搜索引擎只要依据空格和标点就可以分割出词表。对一些检索意义不大的单词,则将这些词列在所谓 stopwords 词表(又称为 badwords中),如: "a, an, and, the, ...",避免因为对这些词建立检索而耗费过多的资源。这些 stopwords 保存在目录 /usr/local/aspseek/etc/stopwords/ 中。

而中文则不能造此办理,没有空格开区分词和词组,因此需要建立相应的词表。这些词表保存在目录 /usr/local/aspseek/etc/tables/ 中。

为能够对中文文档进行检索,需要检查是否在配置文件 aspseek.conf 和 searchd.conf 配置了 "CharsetTableU2" 和 "Dictionary2"选项。这两个选项是在配置文件 ucharset.conf 中定义的,用语句 "Include ucharset.conf" 包含入配置文件 aspseek.conf 和 searchd.conf。 ucharset.conf 中"CharsetTableU2" 和 "Dictionary2"的配置如下:


########################################################################
# Unicode charset definition for multibyte charsets
# (please comment all not needed charsets):
# CharsetTableU2 <charset> <lang> <table> [<lang_map>]
#
CharsetTableU2 big5 ch tables/big5.txt
CharsetTableU2 gb2312 ch tables/gb2312.txt

########################################################################
# Dictionary for tokenizing of text in Chinese, Japanese and Korean languages
# Dictionary2 <lang> <file> [<file encoding>]
# If file encoding is omitted, then file is assumed to be in unicode
# Must be set after encoding definition (CharsetTableU2)
# <lang> parameter must match <lang> in CharsetTableU2 directive.
Dictionary2 ch tables/chinese.txt big5