参考

analysis

文本分析

文本分析是将非结构化文本(如电子邮件正文或产品说明)转换为针对搜索进行了优化的结构化格式的过程。

何时配置文本分析

弹性搜索在索引或搜索文本字段时执行文本分析。
如果您的索引不包含字段,则无需进一步设置;您可以跳过此部分中的页面。text
但是,如果您使用字段或文本搜索未按预期返回结果,则配置文本分析通常会有所帮助。如果您使用弹性搜索来执行以下操作,则还应该查看分析配置:text

  • 构建搜索引擎
  • 挖掘非结构化数据
  • 微调特定语言的搜索
  • 进行词典编纂或语言学研究

    主要内容

  • 概述

  • 概念
  • 配置文本分析
  • 内置分析器参考
  • 分词器参考
  • 令牌筛选器引用
  • 字符筛选器参考
  • 归一化程序

    文本分析概述

    文本分析使 Elasticsearch 能够执行全文搜索,其中搜索返回所有相关结果,而不仅仅是完全匹配。
    如果搜索 ,则可能需要包含 的文档,并且还希望文档包含 相关单词(如 或 )。Quick fox jumpsA quick brown fox jumps over the lazy dogfast foxfoxes leap

    标记化

    分析使全文搜索成为可能,通过标记化:将文本分解为更小的块,称为标记。在大多数情况下,这些标记是单个单词。
    如果将短语索引为单个字符串,并且用户搜索 ,则不会将其视为匹配项。但是,如果对短语进行标记并单独为每个单词编制索引,则可以单独查找查询字符串中的术语。这意味着它们可以通过搜索 、 或其他变体来匹配。the quick brown fox jumpsquick foxquick foxfox brown

    正常化

    标记化支持按单个条件进行匹配,但每个令牌仍按字面顺序匹配。这意味着:

  • 搜索 将不匹配,即使您可能希望任一术语与另一个术语匹配Quickquick

  • 尽管 共享相同的根单词,但搜索将不匹配,反之亦然。foxfoxesfoxesfox
  • 搜索 将不匹配 。虽然它们不共享一个词根,但它们是同义词,具有相似的含义。jumpsleaps

为了解决这些问题,文本分析可以将这些标记规范化为标准格式。这允许您匹配与搜索词不完全相同但足够相似的令牌,使其仍然相关。例如:

  • Quick可以小写:.quick
  • foxes可以词干化,也可以简化为其根词:。fox
  • jump并且是同义词,可以作为单个单词编制索引:。leapjump

若要确保搜索词按预期匹配这些单词,可以对查询字符串应用相同的标记化和规范化规则。例如,搜索 可以规范化为 搜索 。Foxes leapfox jump

自定义文本分析

文本分析由分析器执行,分析器是控制整个过程的一组规则。
弹性搜索包括一个默认的分析器,称为标准分析器,它适用于大多数开箱即用的用例。
如果要定制搜索体验,可以选择其他内置分析器,甚至可以配置自定义分析器。自定义分析器可让您控制分析过程的每个步骤,包括:

  • 标记化之前对文本的更改
  • 如何将文本转换为标记
  • 在索引或搜索之前对标记进行的规范化更改