文本分析-简介

简介

文本分析是es能够执行全文检索,其中搜索返回相关结果,而不仅仅是精确匹配的结果。
如果搜索Quick fox jumps,您可能希望文档包含A Quick brown fox jumps over the lazy dog,还可能希望文档包含相关的单词,如fast foxfox leap

Tokenization 标记化

文本分析使得通过标记进行全文搜索成为可能:将文本分解成更小的块,称为标记。在大多数情况下,这些标记是单独的单词。

如果您索引短语quick brown fox jumps作为单个字符串,而用户搜索quick fox,则不认为它是匹配的。但是,如果对短语进行标记并分别对每个单词进行索引,则可以分别查找查询字符串中的术语。这意味着它们可以通过搜索quick fox、fox brown或其他变体进行匹配。

Normalization 标准化

标记化化支持对单个术语进行匹配,但每个标记仍然按字面进行匹配。这意味着:

  • 搜索Quick不会匹配quick,即使您可能希望其中一个术语与另一个相匹配
  • 虽然foxfoxes有相同的词根,但是对foxes的搜索并不匹配fox,反之亦然。
  • jumps的搜索不能匹配leaps。虽然它们没有相同的词根,但它们是同义词,有相似的意思.

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

  • Quick can be lowercased: quick.
  • foxes can be stemmed, or reduced to its root word: fox.
  • jump and leap are synonyms and can be indexed as a single word: jump.

为了确保搜索条件匹配这些词,您可以对查询字符串应用相同的标记化和规范化规则。例如,对fox leap的搜索可以规范化为对fox jump的搜索。

自定义文本分析

文本分析由分析器执行,分析器是一组管理整个过程的规则。

Elasticsearch包含一个默认分词器,称为standard analyzer,它可以很好地用于大多数开箱即用的用例。
如果你想调整你的搜索体验,您可以选择一个不同的内置分析器,甚至可以配置一个自定义分析器。自定义分析器使您可以控制分析过程的每个步骤,包括:

  • Changes to the text before tokenization
  • 如何将文本转换为标记
  • 在建立索引或搜索之前对标记所做的规范化更改
1
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!