es elasticsearch 九 索引index 定制分词器 type结构后期弃用原因 定制动态映射 动态映射模板 零停机重建索引

news2024/11/26 21:24:09

目录

索引index

定制分词器

Type底层结构及弃用原因

定制 dynamic mapping

定制dynamic mapping template 动态映射模板

零停机重建索引

生产环境应该度别名数据


索引index

Put /index

Stings 分片

Mapping 映射

Aliases 别名

增加

Put my_index2

{

       "settings":{

          "number_of_shards":3,

          "number_of_replicas":1

  },

  "mappings":{

    "properties":{

      "name":{"type":"text"}

    }

  },

  "aliases":{

    "default_index":{}

   

  }

}

Default_index 别名 也可以用来查询

Get default_index/_doc/1

获取索引信息

Get myindex

修改索引

 

删除必须设置索引名 防止 delete /_all 删除全部索引

 

定制分词器

delete my_inde

#定制分词器

put /my_index

{

  "settings":{

    "analysis":{

      "analyzer":{

        "es_std":{

          "type":"standard",

          "stopwords":"_english_"

        }

      }

    }

  }

}

#测试标准分词器

get /my_index/_analyze

{

  "analyzer":"standard",

  "text":"a dog is in the house helloword"

}

#测试自定义分词器

get /my_index/_analyze

{

  "analyzer":"es_std",

  "text":"a dog is in the house helloword"

}

delete /my_index

#定制分词器详细过程

#char_filter 预处理阶段 & 转and 分词器

#filter 停用词策略 the a 取消分词

#analyzer 定制分词器

# "char_filter":["html_strip","&_to_and"],  标签 分词器

put /my_index

{

  "settings":{

    "analysis":{

      "char_filter":{

        "&_to_and":{

          "type":"mapping",

          "mappings":["&=> and"]

        }

      },

      "filter":{

        "my_stopwords":{

          "type":"stop",

          "stopwords":["the","a"]

        }

      },

      "analyzer":{

        "my_analyzer":{

          "type":"custom",

          "char_filter":["html_strip","&_to_and"],

          "tokenizer":"standard",

          "filter":["lowercase","my_stopwords"]

        }

      }

    }

  }

}

#测试

#& 变成 and  the 消失  测试成功

get /my_index/_analyze

{

  "analyzer":"my_analyzer",

  "text":"a dog is & in the house helloword"

}

Type底层结构及弃用原因

预计Es 9 后彻底删除

Type 是索引中区分数据类型的

Es 存储type不同机制

 

对应俩种数据类型 存储方式

 

Es 底层存储结构

 

每条信息需要记录,浪费很多存储空间,统一索引下 有很多type没有值导致大量空值导致浪费空间

所以预计在es9后彻底删除这个字段

定制 dynamic mapping

定制 dynamic策略

#动态mapping映射状态 false 未设置字段不进入倒排索引

#没有定义的false 字段不会进入倒排索引

#有定义的按照定义的 会进入倒排索引

#可以插入新字段但是不会进入倒排索引,定义的会进入倒排索引

put myindex

{

  "mappings":{

    "dynamic":false,

    "properties":{

        "title":{"type":"text"},

        "address":{

          "type":"object",

          "dynamic":true

        }

    }

   

  }

}

没有动态映射的,通过中间词是无法查询的需要全文检索才可以

#必须标准字段,多余字段会报错无法存入

 "dynamic":strict,

#关闭日期探测,自动变成text类型“date_detection”:false

Put /myindex

{

“mappings”:{

       “date_detection”:false

}

}

Get /myindex/_maping

自定义日期格式

Put myindex

{

       "mappings":{

              "dynamic_date_formats":["yyyy-MM-dd"]

}

}

传来string 转换long 或float"numeric_detection":true

delete myindex

Put myindex

{

       "mappings" :{

              "numeric_detection":true

}

}

Put /myindex/_doc/1

{

"my_float":"1.0",

"my_long":"1"

}

get myindex/_doc/1

get /myindex/_mapping

 

定制dynamic mapping template 动态映射模板

delete myindex

#创建动态映射模板如果命中规则,使用此模板英文分词器

#*_en 结尾的使用text 存 英文分词器

put /myindex

{

  "mappings":{

    "dynamic_templates":[{

      "en":{

        "match":"*_en",

        "match_mapping_type":"string",

        "mapping":{

          "type":"text"

          ,"analyzer":"english"

        }

      }

    }]

  }

}

put /myindex/_doc/1

{"te":"this is my xx_en"}

put /myindex/_doc/4

{"tccsssse":"this is 中文my  "}

get myindex/_mapping

匹配规则

Match 属于什么

Unmatch 不属于什么

Match_mapping_type 属于什么类型

Path_match  路径匹配 *.xx 

Path_unmatch 路径不匹配

 

Norms false 指标评分因素

 

零停机重建索引

 

在线上运行的项目,发现不满足要求,创建新索引把旧数据放到新索引中去,从而实现重建索引

拷贝索引数据时间,则是停机不太好

//愿索引 date

Put /my_index

{

“mappings”:{

       “name”:{

              “type:”date”

}

}

}

//设置读取位置

Put /my_index/_alias/prod_index

//新索引

Put /my_index_new

{

“mappings”:{

       “name”:{

              “type:”text”

}

}

}

//切换别名值 程序读取别名

Post /_aliases

{

       “actions”:[

              {“remove”:{“index:”my_index”,”alias”:”prod_index”}}

{“add”:{“index:”my_index_new”,”alias”:”prod_index”}}

]

}

生产环境应该度别名数据

 

ok

持续更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/573567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全行业在经济下行期仍然稳步增长,快抓住风口入行

根据IDC《2022年第四季度中国IT安全软件市场跟踪报告》的数据,2022年下半年中国IT安全软件市场厂商整体收入约为23.8亿美元(约合165.7亿元人民币),同比上升12.4%。结合全年数据,2022全年中国IT安全软件市场规模达到39.…

NodeJS 文件操作④

文章目录 ✨文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持😘前言NODE内置模块 FS模块 CallBack API mkdir (创建文件夹 异步) rmdir(删除文件夹 异步) rm&#…

百度爱番番的线索如何自动导入至CRM系统中?

百度爱番番是什么? 百度爱番番是应用百度强大AI能力,帮助企业实现营销数字化、自动化、智能化,为企业提供拓客、集客、管客的一站式智能解决方案,助力企业营销变得专业且智能。 百度爱番番的线索如何自动导入至CRM系统中&#xf…

MKS SERVO4257D 闭环步进电机_系列2 菜单说明

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈&am…

数据结构和算法,在Python中的实现方式

部分数据来源:ChatGPT 数据结构 在计算机科学中,数据结构指的是计算机中用来存储和组织数据的方式。数据结构是为算法服务的,同一个算法在不同的数据结构上运行效率可能会有很大的不同。这就要求我们在解决问题时要根据具体情况选择合适的数…

前端中间件Midway的使用

一、 关于midway1. 解决什么痛点2. 期望达到什么效果 二、创建应用并使用1. 创建midway应用2. 认识Midway2.1 目录结构2.2 Controller2.3 路由2.4 获取请求参数2.5 Web中间件2.6 组件使用2.7 服务(service) 三、写到最后 一、 关于midway Midway 是阿里巴巴 - 淘宝前端架构团队…

别做重复低质的工作内容摸鱼了,18k大佬分享自动化测试秘籍

自动化测试面试真题(附答案) 一、编程语法题 1、python有哪些数据类型 2、怎么将两个字典合并 3、python 如何将json写到文件里? 4、 __init__和_new__区别? 5、什么是可变、不可变类型? 6、mysql注入点,用工具对目标站直接写入…

IDEA操作数据库并设置时区

目录 设置mysql的时区的方法(提供三种选择) 1、直接在advanced上配置serverTimezone属性值(单次连接有效) 2、进入MySQL客户端修改time_zone 3、直接修改MySQL的my.ini配置文件设置time-zone 使用Database 1、查看当前数据源…

uCOSii信号量的作用

uCOSii中信号量的作用: 在创建信号量时,Sem_EventOSSemCreate(1)用于分时复用共享资源; Sem_EventOSSemCreate(0)用于中断和任务间同步或任务之间的同步。 具体在使用时,需要灵活运用。在访问共享资源时,我喜欢用互…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(5月26日论文合集)

文章目录 一、检测相关(9篇)1.1 Energy-based Detection of Adverse Weather Effects in LiDAR Data1.2 Anomaly Detection with Conditioned Denoising Diffusion Models1.3 Mask Attack Detection Using Vascular-weighted Motion-robust rPPG Signals1.4 Improved Multi-Sca…

AccessShareLock pg cancel backend terminate backend

AccessShareLock 在PostgreSQL中,AccessShareLock是一种用于控制对数据库对象并发访问的锁类型。它是一种读锁,允许多个事务同时从同一个对象进行读取,但它阻止并发事务获取冲突的锁,比如写锁或独占锁。 当一个事务在对象上获取…

【指针的深刻理解】

如何看待下面代码中的a变量? #include<stdio.h> int main() {int a 0;//同样的一个a&#xff0c;在不同的表达式中&#xff0c;名称是一样的&#xff0c;但是含义是完全不同的&#xff01;a 10;//使用的是a的空间&#xff1a;左值int b a; //使用的是a的内容&#x…

Java jiraClient上传附件不能在浏览器预览的问题分析

最近测试的同学反馈问题说使用平台的报bug上传视频的附件以后&#xff0c;然后在jira上确没有办法通过点击附件进行预览&#xff0c;而需要下载下来才能够查看。但是如果是直接在jira上进行上传附件就不会有这个问题 如果说不了解具体原因的&#xff0c;其实就会觉得这个问题非…

【Linux】Top命令参数解释

TOP命令 这是一个Linux系统下 top 命令所输出的进程监控信息。以下是各列含义&#xff1a; top - 09:52:15&#xff1a;当前时间。 up 27 min&#xff1a;系统已经运行的时长。 2 users&#xff1a;当前有2个用户登录到系统上。 load average: 0.97, 0.41, 0.21&#xff1a;系…

Git进阶+Jenkins入门

文章目录 1 Git进阶——GitFlow工作流程1.1 master与develop分支1.1.1 master1.1.2 develop 1.2 feature分支1.3 Release分支1.4 hotfix分支1.1.3 1 Git进阶——GitFlow工作流程 1.1 master与develop分支 1.1.1 master master&#xff1a;发布上线分支&#xff0c;基于master打…

c++调用dll出现LNK2001 无法解析的外部符号

先说说下正常的dll。 动态库显试调用一般3个文件.h .lib .dll &#xff0c;隐式调用 只需要2个文件:.h&#xff08;函数定义&#xff09; .dll 静态库2个文件&#xff1a;.h .lib 先说C正常dll显式调用 #include "BYD_MES/MES2Interface.h" //#include 是以当前…

HTML表单标签form分析

说明&#xff1a;在html的标签中&#xff0c;表单标签与后台联系密切&#xff0c;像用户登录、注册&#xff0c;都是用到页面的表单标签&#xff0c;用户将信息填入到表单中&#xff0c;提交到后端业务中校验处理&#xff0c;再将结果反馈给前端页面。 表单内的标签分别有&…

ChatGPT国内免费使用的方法有哪些?分享几个网内可用的免费的ChatGPT网页版

目录 一、ChatGpt是什么&#xff1f; 二、ChatGPT国内免费使用的方法&#xff1a; 第一点&#xff1a;电脑端 第二点&#xff1a;手机端 三、结语&#xff1a; 一、ChatGpt是什么&#xff1f; ChatGPt是美国OpenAI [1] 研发的聊天机器人程序 。更是人工智能技术驱动的自然语言…

【学习日记2023.5.26】 之 客户端之完善缓存和购物车模块

文章目录 7. 用户端之完善缓存和购物车模块7.1 缓存菜品7.1.1 问题说明7.1.2 实现思路7.1.3 代码开发7.1.4 功能测试7.1.5 提交代码 7.2 缓存套餐7.2.1 Spring Cache7.2.1.1 介绍2.1.2 常用注解7.2.1.3 入门案例 7.2.2 实现思路7.2.3 代码开发7.2.4 功能测试7.2.5 提交代码 7.3…

14-C++面向对象(单例模式、const成员、浅拷贝、深拷贝)

单例模式 单例模式&#xff1a;设计模式的一种&#xff0c;保证某个类永远只创建一个对象 构造函数\析构函数 私有化 定义一个私有的static成员变量指向唯一的那个单例对象&#xff08;Rocket* m_rocket&#xff09; 提供一个公共的访问单例对象的接口&#xff0…