警告:本文档不是最新的。有关最新信息,请 点击此链接。
关于 CJK 语言
CJK 语言有超过 40,000 个字符。大多数是中文。有时你会看到缩写 CJKV。“V” 代表越南语。
CJK 字符包括:
- 对于中文:汉字 – 传统汉字;注音符号 – 汉语拼音字母;拼音 – 汉语的罗马化(一个接近音译的概念)。
- 对于日文:平假名 – 日语音节;片假名 – 日语音节;阿拉伯数字。
- 对于韩文:Hangul(韩文字母)
此外,每种语言都有一组象形字根(部首),作为在字典中搜索字符的分组元素,或作为定义后续字符含义的语义元素。
要显示 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 | Hangul Jamo | 韩文 Hangul 字母中的一个音节的单个字符。用于形成 Hangul 音节的字母 Jamo |
| 2E80 .. 2EFF | CJK Radicals Supplement | 部首 – 象形字母的一个元素,允许单词分组或作为定义后续字符含义的语义元素。 |
| 2F00 .. 2FDF | Kangxi Radicals | 在日本、韩国、台湾采用的康熙字典部首列表,传统上包括 214 个字符 |
| 3000 .. 303F | CJK Symbols and Punctuation | 表意字符和标点符号 |
| 3040 .. 309F | 平假名 | 日语音节 |
| 30A0 .. 30FF | 片假名 | 日语音节 |
| 3100 .. 312F | 注音符号 | 汉语拼音字母 |
| 3130 .. 318F | Hangul Compatibility Jamo | |
| 3190 .. 319F | 汉文或汉文 | 中世纪日本的一种书写语言 |
| 31A0 .. 31BF | 扩展注音符号 | |
| 31C0 .. 31EF | CJK 笔画简单特征(元素)字符 | |
| 31F0 .. 31FF | 片假名音标扩展 | |
| 3200 .. 32FF | 封闭的 CJK 字母和月份 | 圆圈中的 CJK 字母和月份 |
| 3300 .. 33FF | CJK 兼容性 | |
| 3400 .. 4DBF | CJK 统一表意文字扩展 | 一个 CJK 表意文字 |
| 4DC0 .. 4DFF | 易经卦象符号 | |
| 4E00 .. 9FFF | CJK 统一表意文字 | 表意文字 – 书写符号、条件图像或图片,不是适当的语音声音和整个单词 |
| A000 .. A48F | 彝语音节 | 南四川省的语言 |
| A490 .. A4CF | 彝语部首 | |
| AC00 .. D7AF | 韩文音节 | |
| D7B0 .. D7FF | 扩展 Hangul Jamo-B | |
| 20000 .. 2A6DF | CJK 统一表意文字扩展 B | |
| 2A700 .. 2B73F | CJK 统一表意文字扩展 C | |
| 2F800 .. 2FA1F | CJK 兼容性表意文字补充 |
请注意,可以在 CJK 文本中使用的阿拉伯数字对应于宽字符代码(请参见 FFF0 .. FFFF;特殊字符部分)。
你可以在这里查看 http://www.utf8-chartable.de/ 某些字符的外观。
如何告诉 Manticore Search 你的文档包含 CJK 字符?
Manticore Search 在字符级别过滤文本。未被接受进行标记化的字符被视为无效,并用空格替换,空格作为分隔符。默认情况下,仅标记化英文和俄文字符(连同下划线和字母)。
CJK 语言的特点是可以形成未分段文本的字符。对于这些类型的字符,Manticore 可以将这些字符的连续组索引为 n-grams。
在索引配置中,我们需要调整 3 个设置:
- charset_table – 描述字符的主要参数。包含符号和大小写折叠规则的表。
- ngram_chars – 描述需要使用 N-gram 模型将 CJK 文本拆分为单词的字符;
- 将值 ngram_len 设置为 1。这启用 n-gram 特性。目前仅支持 1-grams(文本 "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 索引字符描述的配置文件中。例如,如果您使用在 链接 上获得的字符集范围描述来索引包含 Lisu 或 Vai 语言的文档,搜索将无法正常工作。
特别注意正确设置 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_%28punctuation%29
http://www.babelstone.co.uk/Yi/unicode.html