全文搜索中的分词是将一段文本分解为更小的、可搜索的单元(称为 token)的过程。 这些 token 通常是单词、数字或符号,它们构成了搜索引擎索引和检索信息的基础。 例如,句子 “The quick brown fox jumps” 可能会被分词为 ["quick", "brown", "fox", “jumps”],忽略常见的单词(例如“the”,称为停用词)并规范化大小写。 分词确保搜索引擎可以有效地将术语映射到文档,从而在查询期间实现快速查找。 它是文本处理流程中的第一步,直接影响搜索的准确性和性能。
分词的重要性在于它作为搜索相关性的入口。 文本如何分割成 token 决定了用户可以找到什么。 例如,将连字符术语(如“state-of-the-art”)拆分为 ["state", "of", "the", “art”] 的分词器允许搜索“art”来匹配该短语。 相反,保留连字符的分词器可能会将其视为单个 token,需要完全匹配。 分词还处理边缘情况:电子邮件地址 (user@example.com)、URL (https://example.com) 或没有空格的语言(中文)。 如果分词器无法正确处理这些情况,搜索引擎可能会错过相关文档或返回误报。 例如,配置不当的分词器可能会将“user@example.com”拆分为 ["user", "example", “com”],导致无法搜索完整的电子邮件地址。
开发人员根据应用程序的需求配置分词器。 Elasticsearch 和 Lucene 等工具提供了内置的分词器,例如 standard
分词器,它在单词边界和标点符号处分割文本,或者 whitespace
分词器,它仅在空格处分割文本。 自定义分词器可以满足特定要求:保留主题标签 (#AI)、处理撇号 (“don’t” → [“don’t”] 与 ["don", “t”] 相对),或支持具有复杂形态的语言。 例如,中文分词器通常使用机器学习模型将字符拆分为有意义的词。 一个关键的考虑因素是一致性:在索引和查询期间必须应用相同的分词规则,以避免不匹配。 分词是基础 - 选择正确的方法可确保搜索引擎理解用户意图并提供准确的结果。