带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(7)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(7)

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.4.Analyzers / Custom analyzers(6) https://developer.aliyun.com/article/1229769



配置项

 

separator 单词连接符,默认使用空格。

 

max_output_size 文本输出最大长度,超过长度将不会返回,默认255。

 

GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "fingerprint",
      "separator": "-",
    }
  ],
  "text": "A good cook  could cook cookies?"
}
#Response
[ A-cook-cookies-could-good ]

Keyword marker token filter

 

keyword_marker 过滤器用于标注不需要做词干提取的单词列表,此过滤器执行顺序在词干提取相关的过滤器之前。


GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type":"keyword_marker",
      "keywords":["loves","travelling"]
    },
    "stemmer"
    ],
    "text": ["Tony loves dancing and travelling"]
}
#Response
[ Toni, loves, danc, and, travelling ]

配置项

 

ignore_case 标注单词是否忽略大小写,默认 false。

 

keywords 指定不需要做词干提取的单词列表。

 

keywords_path 指定不做词干提取单词的文件目录,该文件需要保存在 Elasticsearch 目录下的 config 中,文件格式使用 utf-8,每行一个单词。


keywords_pattern 使用正则表达式匹配到的单词不进行词干提取。

 

需要注意 keywords,keywords_path 和 keywords_pattern 不能同时指定,设置其中一个即可。

 

Length token filter

 

length 过滤器会只保留字符长度在设定区间的单词,如返回长度大于3小于5的单词。

GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "length",
      "max": 5,
      "min": 3
    }
  ],
    "text": "Hey,We Are Elasic"
}
#Response
[ Hey, Are ]


配置项

 

min(非必填)最小字符长度。

 

max(非必填) 最大字符长度。

 

Limit token count

 

limit 过滤器用于限制文本返回的单词数量,默认只返回第一个单词。


GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "limit",
      "max_token_count":2    #1
    }
  ],
   "text": "Heya,We are Elasic "
}
#Response
[ Heya, We ]


#1 显示返回前两个单词。


配置项

 

max_token_count 限定返回单词数量,默认为1。

 

Lowercase token filter

 

lowercase 过滤器会根据语言把单词转换为小写字母,默认使用英文。


GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "lowercase"
    }
  ],
  "text": "Heya,We are Elasic "
}
#Response
[ heya, we, are, elastic ]

配置项

 

language 针对特定语言的小写转换,参数支持 Greek,Irish,Turkish。

 

Uppercase token filter

 

uppercase 过滤器会将单词转换为大写字母。


GET /_analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "uppercase"
    }
  ],
  "text": "Heya,We are Elasic "
}
#Response
[ HEYA, WE, ARE, ELASTIC ]

N-gram token filter

 

ngram 根据 N 元语法对单词进行切分,目的是将单词里每一个字符进行大小为 N 的滑动窗口操作,形成了长度是 N 的字节片段序列,切分的结果长可用于模糊匹配。默认最小长度1,最大长度2。 当长度差大于1时,需要为索引设置 index.max_ngram_diff 属性。


GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "ngram",
      "min_gram":2,
      "max_gram":3
    }
  ],
  "text": [  "cat"  ]
}
#Response
[ ca, cat, at ]



《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.4.Analyzers / Custom analyzers(8) https://developer.aliyun.com/article/1229767

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
自然语言处理 索引
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(1)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(1)
|
存储
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(9)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(9)
|
自然语言处理 API 索引
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(12)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(12)
|
自然语言处理 索引
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(13)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(13)
|
存储 算法 Java
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(11)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(11)
114 0
|
算法
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(8)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(8)
|
自然语言处理 算法 Java
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(4)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(4)
|
自然语言处理 索引
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(14)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(14)
135 0
|
自然语言处理 API 索引
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(2)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(2)
106 0
|
存储 自然语言处理 算法
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(10)
带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(10)
124 0
下一篇
无影云桌面