Elasticsearch 的 NGram 分词器使用技巧

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

一、什么是NGram 分词器?

NGram分词器是ES自带的具有前缀匹配搜索功能的一个文本分词器。它能根据文本的步长逐步对写入的文本内容进行约束切割;

二、NGram和index-time搜索推荐原理

搜索的时候,不用再根据一个前缀,然后扫描整个倒排索引了,而是简单的拿前缀去倒排索引中匹配即可,如果匹配上了,那么就好了,就和match query全文检索一样。

官方文档:NGram Tokenizer | Elasticsearch Guide [6.8] | Elastic

官方介绍如下:

es ngram,elasticsearch,大数据,搜索引擎

默认设置下,ngram标记器将初始文本视为单个标记,并生成最小长度为1、最大长度为2的N个字符串,这个最大最小长度我们是可以配置的。

例如:

POST _analyze
{
  "tokenizer": "ngram",
  "text": "Quick Fox"
}

上述句子将产生以下术语:

空格也会进行分词

[ Q, Qu, u, ui, i, ic, c, ck, k, "k ", " ", " F", F, Fo, o, ox, x ]

三 配置参数

The ngram tokenizer accepts the following parameters:

min_gram

Minimum length of characters in a gram. Defaults to 1.

max_gram

Maximum length of characters in a gram. Defaults to 2.

token_chars

Character classes that should be included in a token. Elasticsearch will split on characters that don’t belong to the classes specified. Defaults to [] (keep all characters).

应包含在令牌中的字符类。Elasticsearch将对不属于指定类的字符进行拆分。默认值为[](保留所有字符)。也就是遇到这些字符会进行分词。

Character classes may be any of the following:

  • letter —  for example abï or 
  • digit —  for example 3 or 7
  • whitespace —  for example " " or "\n"
  • punctuation — for example ! or "
  • symbol —  for example $ or 

TIP:将min_gram和max_gram设置为相同的值通常是有意义的。长度越小,匹配的文档越多,但匹配的质量越低。长度越长,匹配的内容就越具体。三克(长度3)是一个很好的起点。

例子:

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "ngram",
          "min_gram": 3,
          "max_gram": 3,
          "token_chars": [
            "letter",
            "digit"
          ]
        }
      }
    }
  }
}

POST my_index/_analyze
{
  "analyzer": "my_analyzer",
  "text": "2 Quick Foxes."
}

分词:文章来源地址https://www.toymoban.com/news/detail-596749.html

[ Qui, uic, ick, Fox, oxe, xes ]

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

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

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

相关文章

  • Elasticsearch分词详解:ES分词介绍、倒排索引介绍、分词器的作用、停用词

    详见:https://blog.csdn.net/weixin_40612128/article/details/123476053

    2024年02月12日
    浏览(41)
  • Elasticsearch专栏-5.es基本用法-分词查询

    所谓分词,就是把一段语句,分割成一个个单词的过程。比如\\\"717 Hendrickson Place\\\"短语,分词后就是三个单词,即717、hendrickson、place。注意,分词后的单词默认都是小写。 分词查询,指的就是查询时,把要查询的语句(字符串)先进行分词,然后拿分词后的单词去文档集合中比

    2024年01月16日
    浏览(32)
  • es elasticsearch 十 中文分词器ik分词器 Mysql 热更新词库

    目录 中文分词器ik分词器 介绍 安装 使用分词器 Ik分词器配置文件 Mysql 热更新词库 介绍 中文分词器按照中文进行分词,中文应用最广泛的是ik分词器 安装 官网下载对应版本zip 下载  放到  plugins 目录 新建 ik文件夹 考入解析zip 重启 es //分成小单词 使用分词器 ik_max_word分成

    2024年02月07日
    浏览(51)
  • Elasticsearch安装分词插件[ES系列] - 第499篇

    历史文章( 文章 累计490+) 《 国内最全的Spring Boot系列之一 》 《 国内最全的Spring Boot系列之二 》 《 国内最全的Spring Boot系列之三 》 《 国内最全的Spring Boot系列之四 》 《 国内最全的Spring Boot系列之 五 》 《 国内最全的Spring Boot系列之六 》 ElasticSearch应用场景以及技术

    2024年02月02日
    浏览(29)
  • Elasticsearch07:ES中文分词插件(es-ik)安装部署

    在中文数据检索场景中,为了提供更好的检索效果,需要在ES中集成中文分词器,因为ES默认是按照英文的分词规则进行分词的,基本上可以认为是单字分词,对中文分词效果不理想。 ES之前是没有提供中文分词器的,现在官方也提供了一些,但是在中文分词领域,IK分词器是

    2024年02月03日
    浏览(70)
  • Excel 使用技巧集锦—163种技巧

    目录 一、基本方法7 1.快速选中全部工作表7 2.快速启动E 7 XCEL 3.快速删除选定区域数据 8 4.给单元格重新命名8 5.在E 中选择整个单元格范围9 XCEL 6.快速移动/复制单元格9 7.快速修改单元格式次序 9 8.彻底清除单元格内容10 9.选择单元格10 10. 为工作表命名11 11. 一次性打开多个工作

    2024年02月03日
    浏览(39)
  • 搜索引擎elasticsearch :安装elasticsearch (包含安装组件kibana、IK分词器、部署es集群)

    kibana可以帮助我们方便地编写DSL语句,所以还要装kibana 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: 这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G。不建议大家自己pull。 课前资料提供了镜像的tar包: 大家将

    2024年02月16日
    浏览(45)
  • Docker安装ElasticSearch、Kibana、IK分词器以及设置ES账户密码

    版本声明: 系统 :CentOS 7.9(云服务器) ES版本 :7.6.1 Kibana :7.6.1 Ik分析器版本 :7.6.1 1、拉取镜像 2、创建挂载目录 设置所有用户读写执行权限 : sudo chmod -R 777 /docker_config/elasticsearch/ 3、创建elasticsearch.yml 配置文件 4、创建容器 参数说明 : -p 端口映射 -e discovery.type=single

    2023年04月09日
    浏览(56)
  • vscode使用技巧(2)

    在vscode中我们想要跳到函数定义的地方去,要装个插件,点击下面红色圈住的地方 在里面搜索插件来安装,输入我们要安装的插件,php IntelliSense,如下 安装好后,它会扫描我们的项目,如下 等它扫描完,我们就可以跳到函数的定义的地方去了,我们把鼠标放到我们要跳转的

    2024年02月14日
    浏览(37)
  • 【Prompt使用技巧】

    ⚠️注意 我介绍的技巧其实在各个场景都可以使用,我将其放在某个场景下解释,只是因为我觉得它更有可能在这个场景用到。你也会更容易记住这个用法。并不意味着这个技巧仅能在此场景使用。并且多技巧混用也是个不错的用法。 在问答场景里,为了让 AI 回答更加准确

    2023年04月18日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包