0
点赞
收藏
分享

微信扫一扫

Elasticsearch——》ngram分词器

Elasticsearch——》ngram分词器

一、概念

在 Elasticsearch 中,ngram 分词器是一种基于 n-gram 算法的分词器,用于将文本转换为一组 n-gram 词项。与其他一些分词器(如 standard 分词器)不同,ngram 分词器可以生成部分单词,并且不需要完整的词汇表。

二、工作原理

ngram 分词器的工作原理是将输入文本切分成一个个较小的子字符串,然后将这些子字符串作为词项添加到索引中。这个过程涉及两个参数:min_grammax_gram,它们控制了生成的词项的长度范围

参数描述默认值
min_gram拆分字符的最小阈值1
max_gram拆分字符的最大阈值2

三、示例

1、默认词项的长度

# 默认生成最小长度为1且最大长度为2N-gram
GET _analyze
{
  "tokenizer": "ngram",
  "text": "elastic"
}

2、指定词项的长度(自定义ngram分词器)

DELETE my_index
PUT /my_index
{
  "settings": {
    "index": {
      "max_ngram_diff": 5
    },
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "ngram",
          "min_gram": 2,
          "max_gram": 4
        }
      }
    }
  }
}

GET /my_index/_analyze
{
  "tokenizer": "my_tokenizer",
  "text": "elastic"
}

在这里插入图片描述

举报

相关推荐

0 条评论