iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >基于ElasticSearch Analyzer的使用规则是什么
  • 737
分享到

基于ElasticSearch Analyzer的使用规则是什么

2023-06-05 03:06:24 737人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“基于elasticsearch Analyzer的使用规则是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于ElasticSearch Analyzer的使用规则是什么”文章能帮助大家解决疑惑,下面跟着小编的

本文小编为大家详细介绍“基于elasticsearch Analyzer的使用规则是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于ElasticSearch Analyzer的使用规则是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

analyzer的使用规则

查询只能查找倒排索引表中真实存在的项, 所以保证文档在索引时与查询字符串在搜索时应用相同的分析过程非常重要,这样查询的项才能够匹配倒排索引中的项。

尽管是在说 文档 ,不过分析器可以由每个字段决定。 每个字段都可以有不同的分析器,既可以通过配置为字段指定分析器,也可以使用更高层的类型(type)、索引(index)或节点(node)的默认配置。在索引时,一个字段值是根据配置或默认分析器分析的。

例如为 my_index 新增一个字段:

PUT /my_index/_mapping/my_type{    "my_type": {        "properties": {            "english_title": {                "type":     "string",                "analyzer": "english"            }        }    }}

现在我们就可以通过使用 analyze api 来分析单词 Foxes ,进而比较 english_title 字段和 title 字段在索引时的分析结果:

GET /my_index/_analyze{"field": "my_type.title","text": "Foxes"} GET /my_index/_analyze{"field": "my_type.english_title","text": "Foxes"}
  1. 字段 title ,使用默认的 standard 标准分析器,返回词项 foxes 。

  2. 字段 english_title ,使用 english 英语分析器,返回词项 fox 。

这意味着,如果使用底层 term 查询精确项 fox 时, english_title 字段会匹配但 title 字段不会。

如同 match 查询这样的高层查询知道字段映射的关系,能为每个被查询的字段应用正确的分析器。 可以使用 validate-query API 查看这个行为:

GET /my_index/my_type/_validate/query?explain{    "query": {        "bool": {            "should": [                { "match": { "title":         "Foxes"}},                { "match": { "english_title": "Foxes"}}            ]        }    }}

返回语句的 explanation 结果:

(title:foxes english_title:fox)

match 查询为每个字段使用合适的分析器,以保证它在寻找每个项时都为该字段使用正确的格式。

默认分析器

虽然我们可以在字段层级指定分析器, 但是如果该层级没有指定任何的分析器,那么我们如何能确定这个字段使用的是哪个分析器呢?

分析器可以从三个层面进行定义:按字段(per-field)、按索引(per-index)或全局缺省(global default)。Elasticsearch 会按照以下顺序依次处理,直到它找到能够使用的分析器。索引时的顺序如下:

  • 字段映射里定义的 analyzer ,否则

  • 索引设置中名为 default 的分析器,默认为

  • standard 标准分析器

在搜索时,顺序有些许不同:

  • 查询自己定义的 analyzer ,否则

  • 字段映射里定义的 analyzer ,否则

  • 索引设置中名为 default 的分析器,默认为

  • standard 标准分析器

有时,在索引时和搜索时使用不同的分析器是合理的。 我们可能要想为同义词建索引(例如,所有 quick 出现的地方,同时也为 fast 、 rapid 和 speedy 创建索引)。但在搜索时,我们不需要搜索所有的同义词,取而代之的是寻找用户输入的单词是否是 quick 、 fast 、 rapid 或 speedy 。

为了区分,Elasticsearch 也支持一个可选的 search_analyzer 映射,它仅会应用于搜索时( analyzer 还用于索引时)。还有一个等价的 default_search 映射,用以指定索引层的默认配置。

如果考虑到这些额外参数,一个搜索时的 完整 顺序会是下面这样:

  • 查询自己定义的 analyzer ,否则

  • 字段映射里定义的 search_analyzer ,否则

  • 字段映射里定义的 analyzer ,否则

  • 索引设置中名为 default_search 的分析器,默认为

  • 索引设置中名为 default 的分析器,默认为

  • standard 标准分析器

Elasticsearch分词(Analyzer)

一、什么是Analysis ?

Analysis 叫做分词,就是将文本转换为一系列单词(term/token)的过程。

Analysis 是通过Analyzer来实现的。

可使用Elasticserach内置的分析器或按需优化分需求或安装分析器插件

在数据写入的时候转换词条于Query语句查询的时候也需要用相同的分析器。

二、Analyzer的组成与工作机制

Character Filter 针对原始文本处理,例如去除html

Tokenizer 按规则切分为单词。Tokenizer Filter将切分的单词进行加工,小写,删除stopWords,增加同义词。

基于ElasticSearch Analyzer的使用规则是什么

三、Elasticserach内置的一些分词器

1) _analyzer API 三种使用方法

基于ElasticSearch Analyzer的使用规则是什么

2) Standard Analyzer

原理

基于ElasticSearch Analyzer的使用规则是什么

示例

基于ElasticSearch Analyzer的使用规则是什么

3)Simple Analyzer

原理

基于ElasticSearch Analyzer的使用规则是什么

示例

基于ElasticSearch Analyzer的使用规则是什么

4)Whitespace Analyzer

原理

基于ElasticSearch Analyzer的使用规则是什么

示例

基于ElasticSearch Analyzer的使用规则是什么

5)Stop Analyzer

原理

基于ElasticSearch Analyzer的使用规则是什么

示例

基于ElasticSearch Analyzer的使用规则是什么

6)Keyword Analyzer

原理

基于ElasticSearch Analyzer的使用规则是什么

示例

基于ElasticSearch Analyzer的使用规则是什么

7)Pattern Analyzer

原理

基于ElasticSearch Analyzer的使用规则是什么

示例

基于ElasticSearch Analyzer的使用规则是什么

8)Language Analyzer

支持按语言分词

基于ElasticSearch Analyzer的使用规则是什么

示例

基于ElasticSearch Analyzer的使用规则是什么

四、中文分词

中文分词的难点:

中文句子,切成一个一个词(不是一个一个字)。英文中,单词有自然的空格作为分隔。一句中文,在不同的上下文,有不同的理解。

1)ICU Analyzer

原理

基于ElasticSearch Analyzer的使用规则是什么

演示(需要提前安装 ICU Analyze 插件)

基于ElasticSearch Analyzer的使用规则是什么

2)IK

基于ElasticSearch Analyzer的使用规则是什么

3) THULAC

基于ElasticSearch Analyzer的使用规则是什么

读到这里,这篇“基于ElasticSearch Analyzer的使用规则是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: 基于ElasticSearch Analyzer的使用规则是什么

本文链接: https://www.lsjlt.com/news/240976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于ElasticSearch Analyzer的使用规则是什么
    本文小编为大家详细介绍“基于ElasticSearch Analyzer的使用规则是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于ElasticSearch Analyzer的使用规则是什么”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-06-05
  • 基于ElasticSearch Analyzer的使用规则详解
    analyzer的使用规则 查询只能查找倒排索引表中真实存在的项, 所以保证文档在索引时与查询字符串在搜索时应用相同的分析过程非常重要,这样查询的项才能够匹配倒排索引中的项。 尽管是...
    99+
    2024-04-02
  • 基于Luhn算法的银行卡校验规则是什么
    这篇文章主要介绍“基于Luhn算法的银行卡校验规则是什么”,在日常操作中,相信很多人在基于Luhn算法的银行卡校验规则是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于Luhn算法的银行卡校验规则是什么...
    99+
    2023-06-30
  • avaScript基本的语法规则是什么
    今天小编给大家分享一下avaScript基本的语法规则是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、运算符&nbs...
    99+
    2023-06-29
  • CSS语法的基本规则是什么
    这篇文章主要为大家展示了“CSS语法的基本规则是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS语法的基本规则是什么”这篇文章吧。 ...
    99+
    2024-04-02
  • Html基本语法规则是什么
    这篇文章主要介绍“Html基本语法规则是什么”,在日常操作中,相信很多人在Html基本语法规则是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Html基本语法规则是什么”...
    99+
    2024-04-02
  • CSS样式使用规则是什么
    这篇文章给大家分享的是有关CSS样式使用规则是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 一:CSS的描述 1、CSS通常称为CSS样式或层叠样式表,主要用于设置HT...
    99+
    2024-04-02
  • sql索引使用规则是什么
    这篇“sql索引使用规则是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“sql索引使用规则是什么”文章吧。1.索引概述1...
    99+
    2023-07-05
  • c++中if elseif使用规则是什么
    在C++中,使用if else if的语法规则如下: if (condition1) { // do something }...
    99+
    2024-04-02
  • React hooks使用规则和作用是什么
    这篇文章主要讲解了“React hooks使用规则和作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React hooks使用规则和作用是什么”吧!useStat...
    99+
    2023-07-05
  • python使用切片的三条规则是什么
    这篇文章主要为大家展示了“python使用切片的三条规则是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python使用切片的三条规则是什么”这篇文章吧。1、切片赋值的第一条规则是,由于切片...
    99+
    2023-06-20
  • 使用 Python 创建一个基于规则的聊天机器人
    目录1、聊天机器人2、基于规则的聊天机器人3、创建语料库4、创建一个聊天机器人5、总结前言: 还记得这个价值一个亿的AI核心代码? while True: AI...
    99+
    2024-04-02
  • MySQL的排序规则是什么
    MySQL的排序规则是根据指定的排序规则来确定查询结果的排序方式。MySQL支持多种排序规则,包括字母数字顺序、大小写敏感或不敏感、...
    99+
    2023-09-21
    MySQL
  • 什么是python的缩进规则
    本篇内容主要讲解“什么是python的缩进规则”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是python的缩进规则”吧!python的缩进规则:对于类定义、函数定义、流程控制语句、异常处理...
    99+
    2023-06-20
  • CSS的通用命名规则是什么
    本篇内容介绍了“CSS的通用命名规则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!CSS规范化命名三种通用命名规则骆驼式命名法:正如它...
    99+
    2023-07-04
  • thinkphp6的开发规则是什么
    这篇文章将为大家详细讲解有关thinkphp6的开发规则是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Thinkphp6与thinkphp5一样遵循PSR-2的命名规范和PSR-4的自动加载。一、目...
    99+
    2023-06-14
  • pgsql的更新规则是什么
    在 PostgreSQL 中,更新规则是用于在更新一个表中的数据时定义如何更新数据的规则。更新规则可以通过使用触发器或规则来实现。 ...
    99+
    2024-04-09
    pgsql
  • python机器学习创建基于规则聊天机器人过程是什么
    这篇文章主要讲解了“python机器学习创建基于规则聊天机器人过程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python机器学习创建基于规则聊天机器人过程是什么”吧!while&n...
    99+
    2023-06-25
  • Golang中的反射规则是什么
    这篇文章主要介绍“Golang中的反射规则是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang中的反射规则是什么”文章能帮助大家解决问题。简单来看反射是什么简单来看,反射就是在程序运行时...
    99+
    2023-07-04
  • IPTables防火墙规则的用法是什么
    本篇文章为大家展示了IPTables防火墙规则的用法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对于Linux系统管理员来说管理网络流量是最棘手的工作之一,很多人把IPTables 当成一个...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作