⚠️ 此页面为自动翻译,翻译可能不完美。

Using Manticore Search with Chinese, Japanese, and Korean language documents

警告:本文内容已过时。如需获取最新信息,请 点击此处

关于 CJK 语言

CJK 语言包含超过 40,000 个字符。其中大部分是中文。有时您会看到 CJKV 这个缩写。这里的“V”代表越南语。

CJK 字符包括:

  1. 对于中文:汉字 – 传统汉字;注音符号 – 汉语拼音字母;拼音 – 汉语的罗马化(一个类似于音译的概念)。
  2. 对于日语:平假名 – 日语假名;片假名 – 日语假名;阿拉伯数字。
  3. 对于韩语:韩文(韩语字母)

此外,每种语言都有一组象形文字键(部首),它们作为在字典中查找字符的分组元素,或作为定义键后字符意义的语义元素。

要显示 CJK 语言的文本,您可以使用以下编码:Big5、EUC-JP、EUC-KR、ISO 2022-JP、KS C 5861、Shift-JIS、Unicode 等。对于 CJK 语言的字母表,有以下 Unicode 区块( http://www.unicode.org/Public/UNIDATA/Blocks.txt ):

范围区块注释
1100 .. 11FF韩文 Jamo韩文字母表中一个音节的单个字符。Jamo 字母用于构成韩文音节
2E80 .. 2EFFCJK 根字补充键(部首)– 象形文字字母表的一个元素,允许对词语进行分组或作为定义后续字符意义的语义元素。
2F00 .. 2FDF康熙部首日本、韩国、台湾采用的部首列表,传统上包括 214 个字符
3000 .. 303FCJK 符号和标点表意字符和标点
3040 .. 309F平假名日语假名
30A0 .. 30FF片假名日语假名
3100 .. 312F注音符号汉语拼音字母
3130 .. 318F韩文兼容 Jamo
3190 .. 319F汉文或 kanbun中世纪日本的一种书面语言
31A0 .. 31BF注音符号扩展
31C0 .. 31EFCJK 笔画简单特征(元素)字符
31F0 .. 31FF片假名语音扩展
3200 .. 32FF圈内 CJK 字母和月份CJK 字母和月份的圆形表示
3300 .. 33FFCJK 兼容
3400 .. 4DBFCJK 统一表意文字扩展A CJK 表意文字
4DC0 .. 4DFF易经卦象符号
4E00 .. 9FFFCJK 统一表意文字表意文字 – 文字符号、条件图像或图画,不是适当的语音声音,而是整个词
A000 .. A48F彝语音节 彝语中国四川省南部的语言
A490 .. A4CF彝语部首
AC00 .. D7AF韩文音节 音节韩文
D7B0 .. D7FF韩文 Jamo 扩展-B
20000 .. 2A6DFCJK 统一表意文字扩展 B
2A700 .. 2B73FCJK 统一表意文字扩展 C
2F800 .. 2FA1FCJK 兼容表意文字补充

请注意,可用于 CJK 文本的阿拉伯数字对应宽空格字符代码(参见 FFF0 .. FFFF;特殊字符部分)。

您可以通过 http://www.utf8-chartable.de/ 查看某些字符的外观。

如何告诉 Manticore Search 您的文档包含 CJK 字符?

Manticore Search 在字符级别过滤文本。不被接受用于分词的字符被视为无效,并替换为空格,空格作为分隔符。默认情况下,只有英语和俄语字符会被分词(连同下划线和字母)。

CJK 语言具有可以形成未分段文本的字符。对于这些类型的字符,Manticore 可以将这些字符的连续组索引为 n-gram.

在索引配置中,我们需要调整 3 个设置:

  1. charset_table – 描述字符的主要参数。包含符号表和大小写折叠规则。
  2. ngram_chars – 描述需要使用 N-gram 模型将 CJK 文本拆分为单词的字符;
  3. ngram_len 的值设置为 1。这将启用 n-gram 功能。目前仅支持 1-gram(文本 "ABCDEF" [其中 A 到 F 在 ngram_chars 列表中] 被索引为 "A B C D E F")。

如何为参数 charset_table 和 ngram_chars 创建描述

更新:Manticore Search 的新版本引入了 charset_table 别名,其中包含所有所需的 CJK 字符,以及一个中文 ICU 词法分析器。如需在最新版本中处理 CJK,请阅读 以下文章

换句话说,如何向 Manticore Search 解释哪些 UTF-8 字符编码属于 CJK 语言家族?

您可以使用来自 charset_tables Sphinx 维基页面的语言区块集合,或使用上表中的数据以及 charset_table 中设置的规则,来描述 CJK 语言的字符和字母选项(参见上述 1-3 项)。请特别注意并仔细检查配置文件中 Manticore Search 索引字符描述是否包含您需要的所有字符范围区块。例如,如果您使用 链接 上获得的字符集范围描述来索引包含傈僳语或瓦伊语的文档,搜索将无法正常工作。

特别注意正确设置 ngram_chars 参数。当在 Manticore Search 中搜索时,系统将不会将这些字符视为匹配项。

有用的链接:

http://en.wikipedia.org/wiki/CJK
http://en.wikipedia.org/wiki/Chinese_character
http://en.wikipedia.org/wiki/Pinyin
http://en.wikipedia.org/wiki/Space_(punctuation)
http://www.babelstone.co.uk/Yi/unicode.html

安装Manticore Search

安装Manticore Search