初识es

作者: 麦大大吃不胖 | 来源:发表于2021-08-04 22:56 被阅读0次

by shihang.mai

基本概念

索引、类型、文档 可以直接类比 mysql的库、表、记录

倒排索引

如果我们有一张电影表,有1000K数据

create table `tb_view`(
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(10)  NOT NULL COMMENT '电影名' 
)

如果我们用sql查询比卡超

select * from tb_view where name like '%比卡超%'

那么会每一条去匹配,从而找出所有比卡超相关的记录,非常的慢

如果是使用倒排索引,会将所有电影名分词,然后维护一张倒排索引表,一共两列

名词 文档序号
比卡超 1,2,3,5
大大 3

那么查询比卡超,只需要直接查询1,2,5的文档即可。例如搜索【比卡超大大】,那么文档3同时命中,而二档1,2,5只命中一个,那么会出现不同的相关度,即score

命令

ES都是用restful风格操作的

命令 作用 举例
/_cat 查看ES状态 _cat/nodes 查看es的节点
_cat/health 查看es的健康状态
_cat/master 查看es主节点信息
_cat/indices 查看es中的所有索引
put 增加or覆盖文档 put 索引名/类型/唯一标识 json内容唯一标识必填
当es中存在该标识做覆盖操作(每一次操作,版本和序列号都会+1),
如不存在,做插入操作
post 增加or覆盖文档 post 索引名/类型/(唯一标识) json内容 唯一标识非必填
如不写,则es会默认分配一个唯一标识并且每次不一样。
如写,那么es中存在该标识做覆盖操作(每一次操作,版本和序列号都会+1),如没,做插入操作
get 获取文档 get 索引名/类型/唯一标识 其中_seq_no每更新一次就会加1
post _update 更新文档 post 索引名/类型/唯一标识/_update
{
doc:json内容
}
存在的key做覆盖,不存在key做增加
delete 删除文档or删除索引 delete 索引名/类型/唯一标识
delete 索引名
POST _bulk 批量 POST /_bulk
{"delete":{"_index":"testindex","_type":"testtype","_id":"1"}}
{"create":{"_index":"testindex","_type":"testtype","_id":"1"}}
{"m":"mai"}
{"index":{"_index":"testindex","_type":"testtype"}}
{"m":"msh"}
{"update":{"_index":"testindex","_type":"testtype","_id":"1"}}
{"doc":{"m":"maishihang"}}
query 查询文档 GET 索引名/_search {"query":{}},常用match、bool、filter、term
aggs 对查询结果进行组合 GET 索引名/_search {"aggs":{}}
mapping 获取索引属性类型 GET 索引名/_mapping
PUT 索引 {"mapping":{}}创建映射
PUT 索引/_mapping {}增加映射
并不存在修改映射
_reindex 迁移数据(修改映射的方法) POST _reindex {}
_analyze 分词 POST _analyze {"analyzer":"分词器","text":"值"}
下载分词器到plugins目录即可,并且里面的config可以配置自定义词库

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html

相关文章

  • 02总结--014--OpenGL ES 初识

    OpenGL ES 初识 OpenGL ES 简介 OpenGL ES (OpenGL for Embedded ...

  • es 初识

    健康检查 GET /_cat/health?v 查看节点 GET /_cat/nodes?v 查看所有索引 GET...

  • 初识es

    by shihang.mai 基本概念 索引、类型、文档 可以直接类比 mysql的库、表、记录 倒排索引 如果我...

  • OpenGL-ES初探

    初识 OpenGL ES OpenGL ES是OpenGL的子集 OpenGL ES 是针对嵌入式设备及移动终端设...

  • 初识OpenGL ES

    因为公司需要 所以我在学习OpenGl ES下面和大家分享下我对它的认识OpenGL ES是一个嵌入式系统,用来提...

  • 初识OpenGL ES

    好久没有学习和总结了, 整个五月六月都在浪, 来到新公司, 跟着新同事浪, 好久不见的同学来广州带着同学去浪, 然...

  • 初识OpenGL ES

    本人菜鸟一枚, 需要大神来指教. OpenGL是用于可视化的二维和三维数据。它是一个多用途开放标准图形库,支持2D...

  • 初识 OpenGL ES

    简介 OpenGL ES (OpenGL for Embedded Systems)是以手持和嵌入式为⽬标的高级 ...

  • OpenGL ES 初识

    1、OpenGL ES简介 OpenGL ES (OpenGL for Embedded Systems) 是以⼿...

  • 初识OpenGL ES

    简介 OpenGL ES (OpenGL for Embedded Systems) 是以手持和嵌入式为目标的⾼级...

网友评论

      本文标题:初识es

      本文链接:https://www.haomeiwen.com/subject/ybifvltx.html