Elasticsearch 认识分词(1)

本文介绍了分词在构建倒排索引中的重要性,特别是针对英文和中文的差异。着重讲述了何时需要分词,以及Elasticsearch中分词发生的阶段和分析器的构成。
摘要由CSDN通过智能技术生成

一.概述

  分词是构建倒排索引的重要一环。根据语言不同可以分为英文分词、中文分词等;根据分词实现的不同又分为标准分词器、空格分词器、停用词分词器等。在传统的分词器不能解决特定业务场景的问题时,往往需要自定义分词器。

  1.1认识分词

    对于分词操作来说,英语单词分词相对简单,因为单词之间都会以空格或者标点隔开,举例如下

  A man can be destroyed,but not defeated.
  a /man/can/be/destroyed /but /not/defeated(正确)  

     而中文在单词、句子甚至段落之间没有空格, 分词比较复杂

  内塔尼亚胡说的确实在理

  内塔尼亚胡 /说 /的确 /实在 /理(错误)
  内塔尼亚 /胡说 /的 /确实 /在理(错误)
  内塔尼亚胡 /说的 /确实 /在理(正确)

  1.2 什么时候需要分词

    用户需要进行模糊搜索的场景,通过“搜索词”搜索出关联的文档数据,特别是在大数据量,要求搜索快速响应等情况下使用分词, 分词后存储为倒排索引结构的倒排文件, 通过倒排索引快速检索出相关文档。

  1.3 分词发生的阶段

     前提条件:只有文档中的text类型字段才会进行分词,es默认分词器是:standard分词器。

    1)在写入数据时(数据索引化过程),使用分词器进行分词,将分词存储为倒排索引。

    2)在搜索数据时(检索过程),通过“搜索词”进行分词找到相应文档。

   1.4 分析器(analyzer)组成

    文档在写入并转换为倒排索引前,通过es内置分析器(analyzer)或自定义分析器进行分析实现,analyzer由三个部分组成:

    1)charactcr filter 字符过滤器。

    2)  tokenizer 分词器,将文本切分为单个单词 term。

      3)token filter 令牌过滤器,分词后再过滤。

    1个analyzer包括: 0或多个charactcr filter、1个tokenizer 、 0或多个token filter。

参考资料:一本书讲透Elasticsearch

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值