(七) ElasticSearch 分词器

这篇具有很好参考价值的文章主要介绍了(七) ElasticSearch 分词器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.分词器

分词器是 Elasticsearch 用于将文本拆分为单词(词项)的组件,以便于搜索和索引。以下是一些关于 Elasticsearch 分词器的常见问题和相关操作的介绍:

1)什么是分词器?

分词器是 Elasticsearch 中的一个组件,用于将文本转换为词项,以便于搜索和索引。它负责将输入的文本进行拆分、标准化和处理,生成最终的词项列表。

2)常用分词器

Elasticsearch 提供了多个内置的分词器,每个分词器适用于不同的场景和需求。以下是一些常用的内置分词器:

  • standard 分词器:
    standard 分词器是 Elasticsearch 默认的分词器,适用于大多数情况。它会根据空格和标点符号将文本拆分为词项,并进行小写转换和标点符号过滤。
  • simple 分词器:
    simple 分词器会根据非字母字符将文本拆分为词项,并将词项转换为小写。它不会进行标点符号和停用词的过滤。
  • whitespace 分词器:
    whitespace 分词器会根据空格字符将文本拆分为词项。它不会进行小写转换、标点符号过滤和停用词过滤。
  • keyword 分词器:
    keyword 分词器不会对文本进行拆分,将整个文本作为一个词项。它通常用于不需要进行分词的字段,如关键字字段或精确匹配字段。
  • pattern 分词器:
    pattern 分词器根据正则表达式模式将文本拆分为词项。你可以指定自定义的正则表达式模式来满足特定的分词需求。
  • stop 分词器:
    stop 分析器 和 simple 分析器很像,唯⼀不同的是,stop 分析器增加了对删除停⽌词的⽀
    持,默认使⽤了english停⽌词,stopwords 预定义的停⽌词列表,⽐如 (the,a,an,this,of,at)等等。
  • language 分词器:
    Elasticsearch 还提供了多个针对特定语言的分词器,如 english、chinese、french 等。这些分词器会根据特定的语言规则和特征进行分词处理,以提供更准确的分词效果。

3)测试分词器

这里是一个简单的示例,演示如何使用内置的 standard 分词器测试文本的分词效果:

POST _analyze
{
  "analyzer": "standard",
  "text": "Hello world, this is Elasticsearch"
}

以上操作会将文本 “Hello world, this is Elasticsearch” 使用 standard 分词器进行分析,并返回分词结果。

4)选择分词器

创建索引时选择分词器方法
在创建索引时,可以通过指定字段的映射来指定分词器。下面是创建索引并指定字段分词器的示例:

PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "type": "whitespace",
        }
      },
    }
  },
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "analyzer": "my_analyzer"
      }
    }
  }
}

更换索引字段分词器方法:
要更换字段的分词器,需要重新定义字段的映射,并指定新的分词器。下面是更换字段分词器的一般步骤:
1.关闭索引:

POST /索引名/_close

2.更新字段映射:

PUT /索引名/_mapping
{
  "properties": {
    "字段名": {
      "type": "text",
      "analyzer": "新的分词器"
    }
  }
}

3.打开索引:

POST /索引名/_open

5)中文分词器

使用中文分词器的主要目的是对中文文本进行正确、准确的分词处理。中文与英文等拉丁语系的语言不同,它没有明确的词语分隔符(如空格),因此直接对中文进行全文匹配会导致词语的混淆和错误。

当涉及到中文分词器时,两个常用的选择是 Smart Chinese Analyzer(smartcn)和 IK Analyzer。

Smart Chinese Analyzer(smartcn):
Smart Chinese Analyzer 是 Elasticsearch 内置的中文分词器,它使用机器学习算法进行分词,并且适用于简体中文和繁体中文。
Smart Chinese Analyzer 的优点是易于使用,无需额外配置即可使用。它具有较高的分词准确性和召回率,适用于大多数中文文本的索引和搜索。

安装:

sh elasticsearch-plugin install analysis-smartcn

安装后重新启动ES

在创建索引时,可以将字段的分词器指定为 “smartcn”。

PUT /索引名
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "type": "smartcn"
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "字段名": {
        "type": "text",
        "analyzer": "my_analyzer"
      }
    }
  }
}

卸载:

 sh elasticsearch-plugin remove analysis-smartcn

IK Analyzer:

IK Analyzer 是一个第三方的中文分词器,它基于开源项目 IK Analysis 进行开发。IK Analyzer 提供了细粒度的中文分词能力,支持词库扩展和自定义词典。
IK Analyzer 的优点是可以根据具体需求进行配置和定制,支持停用词过滤、同义词扩展等功能。它适用于对中文文本的更精确分词和分析需求。
在创建索引时,可以将字段的分词器指定为 “ik_max_word” 或 “ik_smart”。“ik_max_word” 会尽可能多地进行分词,而 “ik_smart” 则会更加智能地进行分词。

下载
https://github.com/medcl/elasticsearch-analysis-ik/releases

安装 解压安装到plugins⽬录

安装后重新启动

示例:文章来源地址https://www.toymoban.com/news/detail-491529.html

PUT /索引名
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "type": "custom",
          "tokenizer": "ik_max_word"
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "字段名": {
        "type": "text",
        "analyzer": "my_analyzer"
      }
    }
  }
}

到了这里,关于(七) ElasticSearch 分词器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自定义分词器:ElasticSearch自定义分词器

    自定义分词器:ElasticSearch自定义分词器 ElasticSearch是一个开源的搜索和分析引擎,它提供了实时的、可扩展的、高性能的搜索功能。ElasticSearch使用Lucene库作为底层搜索引擎,它提供了强大的文本分析和搜索功能。在ElasticSearch中,分词器是将文本拆分为单词的过程,它是搜索

    2024年02月20日
    浏览(25)
  • Elasticsearch分词器--空格分词器(whitespace analyzer)

      文本分析,是将全文本转换为一系列单词的过程,也叫分词。analysis是通过analyzer(分词器)来实现的,可以使用Elasticearch内置的分词器,也可以自己去定制一些分词器。除了在数据写入时将词条进行转换,那么在查询的时候也需要使用相同的分析器对语句进行分析。 分词器

    2024年02月04日
    浏览(29)
  • (七) ElasticSearch 分词器

    分词器是 Elasticsearch 用于将文本拆分为单词(词项)的组件,以便于搜索和索引。以下是一些关于 Elasticsearch 分词器的常见问题和相关操作的介绍: 分词器是 Elasticsearch 中的一个组件,用于将文本转换为词项,以便于搜索和索引。它负责将输入的文本进行拆分、标准化和处理

    2024年02月09日
    浏览(65)
  • elasticsearch分词器

    Standard Analyzer - 默认分词器,英文按单词词切分,并小写处理 Simple Analyzer - 按照单词切分(符号被过滤), 小写处理 Stop Analyzer - 小写处理,停用词过滤(the,a,is) Whitespace Analyzer - 按照空格切分,不转小写 Keyword Analyzer - 不分词,直接将输入当作输出 标准分词器:按照 单词分词 英

    2024年01月18日
    浏览(12)
  • Elasticsearch——》ngram分词器

    推荐链接:     总结——》【Java】     总结——》【Mysql】     总结——》【Redis】     总结——》【Kafka】     总结——》【Spring】     总结——》【SpringBoot】     总结——》【MyBatis、MyBatis-Plus】     总结——》【Linux】     总结——》【MongoDB】    

    2024年02月06日
    浏览(67)
  • elasticsearch分词器详解

    分词器 简介 ES文档的数据拆分成一个个有完整含义的,并将与文档对应,这样就可以通过查询文档 要想正确的分词,需要选择合适的分词器 默认分词器 简介 根据空格和标点符号对英文进行分词,会进行单词的大小写转换 默认分词器是英文分词器,对中

    2024年02月16日
    浏览(38)
  • ElasticSearch系列——分词器

    Analysis∶文本分析是把全文本转换一系列单词(term/token)的过程,也叫分词 Analysis是通过Analyzer来实现的。分词就是将文档通过Analyzer分成一个一个的Term,每一个Term都指向包含这个Term的文档。 character filters(字符过滤器) : 在文本进行过滤前需要先进行预先处理 tokenizers(分词器) :

    2024年02月16日
    浏览(21)
  • 学好Elasticsearch系列-分词器

    本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 先看后赞,养成习惯。 点赞收藏,人生辉煌。 目录 规范化:normalization 字符过滤器:character filter HTML Strip Character Filter Mapping Character Filter Pattern Replace Character Filter 令牌过滤器(token filter) 大小写和停用词

    2024年02月14日
    浏览(18)
  • ElasticSearch分词器介绍

    在大数据时代,搜索技术变得尤为重要。ElasticSearch作为一款强大的开源搜索引擎,提供了丰富的功能来满足各种搜索需求。其中,分词器是ElasticSearch中一个非常核心的概念,它决定了如何将用户输入的文本切分成一个个的词汇单元。 一、什么是分词器? 简单来说,分词器就

    2024年01月25日
    浏览(26)
  • ElasticSearch学习(五): 分词器

            顾名思义, 文本分析 就是 把全文本转换成一系列单词(term/token)的过程 ,也叫 分词 。         在 ES 中, Analysis 是通过 分词器(Analyzer)  来实现的,可使用 ES 内置的分析器或者按需定制化分析器。         再简单了解了 Analysis 与 Analyzer 之后,让我

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包