第9回 多语言组织的搜索基础设施 – 构建正确搜索日语、英语和中文文档的环境

前言

在全球化运营的企业或拥有外国籍员工的组织中,内部文档会以多种语言编写。 在日语会议记录、英语技术规格书、中文市场报告等语言混合的环境中,需要能够适当进行搜索的基础设施。

本文假设日语、英语和中文文档共存的环境,构建能够正确搜索各种语言文档的环境。

目标读者

  • 处理多语言文档的组织管理员

  • 希望改善日语以外语言搜索质量的人员

  • 希望学习全文搜索 Analyzer 基础知识的人员

场景

假设一家在日本、美国和中国设有分支机构的企业。

  • 日本分支:创建日语文档(规格书、会议记录、报告书)

  • 美国分支:创建英语文档(技术文档、演示资料)

  • 中国分支:创建中文文档(市场调研、客户信息)

  • 共通:以英语编写的全球政策文档

目标是创建一个各分支机构的员工能够跨语言搜索文档的环境。

多语言搜索基础

全文搜索中的语言处理

全文搜索引擎要使文档可被搜索,需要将文本拆分为”token”(可搜索的单位)。 这一处理过程称为”分词”。

不同语言的分词方法存在很大差异。

英语:以空格分隔的单词直接成为 token。 此外,还会进行词干提取(stemming:running -> run)和小写转换。

日语:由于没有空格分隔,需要使用形态素分析器(如 Kuromoji)将文本拆分为单词。 例如:”全文检索服务器” -> “全文” “检索” “服务器”。

中文:与日语类似,由于没有空格分隔,需要专用的分词器。Fess 使用自研的中文分词器进行处理。

Fess 的多语言支持

Fess 以 OpenSearch 作为后端,可以利用 OpenSearch 提供的多语言 Analyzer。 在 Fess 的默认设置中,日语(Kuromoji)Analyzer 已启用,但也支持其他语言。

Fess 拥有支持 20 多种语言的索引设置,具备自动检测文档语言并应用适当 Analyzer 的功能。

各语言设置

日语设置

日语文档由 Kuromoji Analyzer 处理。 由于 Fess 的默认设置能够适当处理日语,因此不需要特别的额外配置。

但是,通过以下自定义可以提高搜索质量。

用户词典

将行业专用术语和内部术语注册到词典中。 可以在管理界面的 [系统] > [词典] 中选择 Kuromoji 词典进行设置。

例如,当希望复合词作为一个 token 而不是被拆分为多个单词时,此功能很有用。

同义词

处理日语特有的书写变体。

サーバー,サーバ
データベース,DB,ディービー
ユーザー,ユーザ,利用者

英语设置

英语文档通过 Fess 的多语言索引自动使用适当的 Analyzer 进行处理。

英语特有的自定义包括以下内容。

停用词

常见的英语停用词(the、a、an、is、are 等)默认被排除,但也可以添加行业特有的停用词。

词干覆盖

覆盖特定单词的词干转换。 可以在管理界面的 [系统] > [词典] 中选择 Stemmer 覆盖词典进行设置。

例如,当技术术语发生意外转换时使用。

中文设置

中文文档使用 Fess 自研的中文分词器。 在 Fess 的多语言索引中,简体中文和繁体中文文本都能被正确分词。

中文特有的注意事项包括以下内容。

  • 简体字与繁体字的对应

  • 拼音输入搜索支持

  • 中文特有的同义词设置

多语言环境中的搜索体验

搜索 UI 注意事项

在多语言环境中,搜索 UI 也需要匹配用户的语言。

Fess 具有根据浏览器语言设置自动切换 UI 语言的功能。 搜索界面的 UI 提供了包括日语、英语和中文在内的多种语言。

跨语言搜索注意事项

还存在”用日语关键词查找英语文档”这样的跨语言搜索需求。 目前,Fess 单独并不支持完全自动的翻译搜索,但可以通过以下方法部分地满足这一需求。

多语言同义词设置

将日语和英语的对译注册为同义词。

会議,meeting,ミーティング
報告書,report,レポート
仕様書,specification,スペック

这样,搜索日语的”会议”时,也会返回包含”meeting”的英语文档。

通过标签进行语言过滤

为每种语言设置标签,使用户能够选择搜索对象的语言范围。

  • lang-ja:日语文档

  • lang-en:英语文档

  • lang-zh:中文文档

词典管理最佳实践

在多语言环境中,词典管理对搜索质量有重大影响。

按语言进行词典维护

词典维护要点
词典 日语 英语 / 中文
同义词 书写变体、缩写、专业术语 缩写展开、同义词
停用词 行业特有的无用词 领域特有的无用词
用户词典 内部术语、产品名称 (Kuromoji 特有)
Protwords(受保护词) 不应进行词干提取的词 技术术语、专有名词

定期词典维护

词典不是设置一次就完成的,需要定期进行审查。

  • 添加新的产品名称和项目名称

  • 清理不再使用的术语

  • 添加从搜索日志中发现的新同义词候选

结合第8回介绍的搜索质量调优周期,持续维护词典。

总结

本文介绍了在日语、英语和中文文档共存环境中构建搜索基础设施的方法。

  • 理解各语言不同的分词处理

  • Fess 的多语言索引和 Analyzer 设置

  • 日语(Kuromoji)、英语、中文各自的自定义

  • 通过多语言同义词实现跨语言搜索

  • 词典管理最佳实践

多语言支持不是一次配置就能完成的,根据使用情况进行持续改进非常重要。

下一回将介绍搜索系统的稳定运维。

参考资料