参考
文本分析
文本分析是将非结构化文本(如电子邮件正文或产品说明)转换为针对搜索进行了优化的结构化格式的过程。
何时配置文本分析
弹性搜索在索引或搜索文本字段时执行文本分析。
如果您的索引不包含字段,则无需进一步设置;您可以跳过此部分中的页面。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
自定义文本分析
文本分析由分析器执行,分析器是控制整个过程的一组规则。
弹性搜索包括一个默认的分析器,称为标准分析器,它适用于大多数开箱即用的用例。
如果要定制搜索体验,可以选择其他内置分析器,甚至可以配置自定义分析器。自定义分析器可让您控制分析过程的每个步骤,包括:
- 标记化之前对文本的更改
- 如何将文本转换为标记
- 在索引或搜索之前对标记进行的规范化更改