文本分析概述
文本分析使 Elasticsearch 能够执行全文搜索,搜索结果会返回所有相关的结果,而不仅仅是完全匹配的结果。
如果你搜索“Quick fox jumps”,你可能希望找到包含“A quick brown fox jumps over the lazy dog”的文档,你也可能希望找到包含相关词汇(如“fast fox”或“foxes leap”)的文档。
分析通过分词实现全文搜索:将文本分解成更小的单元,称为词元。在大多数情况下,这些词元是单独的单词。
如果你将短语“the quick brown fox jumps”作为一个单一字符串进行索引,而用户搜索“quick fox”,那么它不会被视为匹配。然而,如果你对短语进行分词并将每个单词分别索引,查询字符串中的术语就可以单独查找。这意味着它们可以通过搜索“quick fox”“fox brown”或其他变体来匹配。
分词使得能够对单个术语进行匹配,但每个词元仍然会逐字匹配。这意味着:
• 搜索“Quick”不会匹配“quick”,尽管你可能希望这两个词能够相互匹配。
• 尽管“fox”和“foxes”有相同的词根,但搜索“foxes”不会匹配“fox”,反之亦然。
• 搜索“jumps”不会匹配“leaps”。尽管它们没有相同的词根,但它们是同义词,意思相近。
为了解决这些问题,文本分析可以将这些词元规范化为标准格式。这使得你可以匹配那些与搜索词不完全相同,但仍然足够相关的词元。例如:
• “Quick”可以转换为小写:“quick”。
• “foxes”可以进行词干提取,即还原为词根:“fox”。
• “jump”和“leap”是同义词,可以索引为同一个词:“jump”。
为了确保搜索词能够按预期匹配这些词,你可以对查询字符串应用相同的分词和规范化规则。例如,搜索“Foxes leap”可以被规范化为搜索“fox jump”。
自定义文本分析
文本分析是由分析器执行的,它是一组规则,控制整个分析过程。
Elasticsearch 包含一

最低0.47元/天 解锁文章
6100

被折叠的 条评论
为什么被折叠?



