常用Elasticsearch语句
查询
布尔查询(bool query)
Bool查询语法有以下特点
- 子查询可以任意顺序出现
- 可以嵌套多个查询,包括bool查询
- 如果bool查询中没有must条件,should中必须至少满足一条才会返回结果。
bool查询包含四种操作符,分别是must
,should
,must_not
,filter
。他们均是一种数组,数组里面是对应的判断条件。
must: 必须匹配。贡献算分
must_not:过滤子句,必须不能匹配,但不贡献算分
should: 选择性匹配,至少满足一条。贡献算分
filter: 过滤子句,必须匹配,但不贡献算分
其他方式查询
## 从一批字段中根据关键字查询出来
{"query": {"multi_match": {"query": "value","fields": ["field1","field2"]} }
}## 从一批字段中根据关键字查询出来【可以用AND、OR声明是并的关系还或的关系】
{"query": {"query_string": {"query": "value1 AND/OR value2","fields": ["field1","field2"]}}
}
删除
条件删除
DELETE index_name/_doc/_idPOST index_name/_delete_by_query
{"query": {"bool": {"must": [{"term": {"FIELD": {"value": "VALUE"}}}]}}
}
修改
修改setting
PUT index_name/_settings
{"settings": {# 需要修改的路径及数据"index.refresh_interval":"2s"}
}
# 或者
PUT index_name/_settings
{"refresh_interval": "1s"
}
修改mapping
添加新的字段
PUT index_name/_mapping?pretty
{"properties" : { "new_field_name": {"type":"text"}}
}
修改字段类型
es不能修改已创建的字段类型,需要通过创建索引和数据迁移的操作,间接实现字段类型的更替的效果
具体操作见 「Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?
删除字段
与修改字段类型相似,需要通过创建索引和数据迁移的操作,间接实现删除字段的效果
具体操作见 es删除字段
批量操作
使用模板
POST _bulk
{"actionName": {"_index": "index_name", "_type": "typeName", "_id":"id"}}
{"field1": "value1", "field2": "value2",…}
actionName:表示操作类型,主要有create,index,delete和update
create
:批量创建文档。
index
:普通创建或全量替换。如果原文档不存在,则创建。如果原文档存在,则替换
delete
:批量删除
update
:批量修改
分析索引操作
查看索引映射信息
GET index_name/_mapping
查看索引配置信息
GET index_name/_settings
查看写时分词结果
查看index_name
索引在使用field_name
字段存储一段文本时,es是如何分词的
POST index_name/_analyze
{"field": "field_name","text": "Eating an apple a day keeps doctor away"
}
根据分词器查看分词结果
分词器包括:
【standard
】默认分词器(基于Unicode文本分割算法,适用于大多数语言)
【ik_max_word
、ik_smart
】ik分词器(前者是粗粒度的拆分,后者是细粒度的拆分)
【yinpin
】拼音分词器
【whitespace
】按空格分词器
【simple
】按非字母分词器(结果中的英文均为小写)
等其他分词器
使用指定分词器结果
使用【standard
】分词器时,es将如何分词
GET /_analyze
{"analyzer" : "standard","text" : "Eating an apple a day keeps doctor away"
}
参考内置分词器、中文分词器
业务操作
索引数据复制
POST /_reindex
{"source": {"index": "index_name"},"dest": {"index": "new_index_name"}
}
# 如若出现超时问题可在后添加?slices=9&refresh&wait_for_completion=false
参考「Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?
超时问题参考Elasticsearch:Reindex API 使用和故障排除的 3 个实践
使用SQL语句查询
POST /_xpack/sql/translate?pretty
{ "query": "SELECT context FROM index_name where context like '%目录%'"
}
# v.7.0后 format参数提供以什么方式返回
POST /_sql?format=txt
{ "query": "SELECT context FROM index_name where context like '%目录%'"
}
参考Elasticsearch SQL特性研究
索引别名使用
基础语法
查看别名
# 查询所有别名是alias_name的索引
GET /_alias/alias_name
# 查询索引index_name指向以alias_name开头的所有别名
GET index_name/_alias/alias_name*
# 查询索引index_name所有的别名
GET index_name/_alias/*
新增别名【可批量】
POST _aliases
{"actions": [{"add": {"index": "index_name", "alias": "alias_name", "is_write_index":true}}# 批量操作可直接`,`拼接]
}
当同一个别名指向多个索引的情况下,如果你想要修改别名的时候也想修改索引,那么在设置索引的时候,请在配置别名的时候,同时加上这个参数(is_write_index = true)。默认是 false,只可以为一个索引进行修改,否则报错。
删除别名【可批量】
POST _aliases
{"actions": [{"remove": {"index": "index_name", "alias": "alias_name"}}# 批量操作可直接`,`拼接]
}
删除和新增可混合使用
进阶语法
使用indeices数组语法在一个操作中为多个索引指向别名
- 多个索引指向同一别名
POST _aliases
{"actions": [{"add": {"indices": ["index_name1", "index_name2", "index_name3"], "alias": "alias_name"}}]
}
- 一个索引指向多个别名
POST _aliases
{"actions": [{"add": {"index": "index_name", "aliases": ["alias_name1", "alias_name2", "alias_name3"]}}]
}
别名过滤器
POST _aliases
{"actions": [{"add": {"index": "index_name","alias": "alias_name","filter": {"term": {"FIELD": "VALUE"}}}}]
}
如果想用一个别名对索引中的某个字段进行分组,可以选择别名过滤器
常用Elasticsearch语句相关推荐
- mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...
扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库 innobackupex ...
- mysql用户管理,常用sql语句,mysql数据库备份恢复
2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制...
SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...
- Oracle 数据库常用操作语句大全
原文:Oracle 数据库常用操作语句大全 一.Oracle数据库操作 1.创建数据库 create database databasename 2.删除数据库 drop data ...
- concat mysql sql注入_sql注入-mysql注入基础及常用注入语句
最近在教学中,关于SQL注入,总发现学生理解起来有些难度,其实主要的原因是对各类数据库以及SQL语句不熟悉,今天先介绍mysql注入需要掌握的基础, Mysql内置information_schema ...
- MySQL用户管理、常用sql语句、数据库备份
13.4 MySQL用户管理 创建用户并授权 指定登录IP [root@centos-01linux ~]# mysql -uroot -p Enter password: Welcome to th ...
- 55:Mysql用户管理|常用sql语句|mysql数据库备份恢复
2019独角兽企业重金招聘Python工程师标准>>> 1.Mysql用户管理: 场景,为了安全,新建的站点,创建新的用户,或者给已有用户授权,对某个库或者某个表有权限: 语法: g ...
- MySQL用户管理、常用SQL语句、MySQL数据库备份恢复
mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...
- HiveSQL常用数据处理语句
HiveSQL运行优化参数配置 HiveSQL常用数据处理语句 HiveSQL中复杂数据类型操作 Hive 采用了类似SQL 的查询语言 HQL(Hive Query Language),因此很容易将 ...
最新文章
- php专周总结,【嘉兴东臣php】HTML5、CSS3学习周总结
- 点击显示底框颜色,默认显示第一个。
- 武汉大学 RSIDEA 团队开源LoveDA:可同时推进语义分割和迁移学习
- 云盘存储 教学反思_现代教育技术
- 中断(二)—— x86 APIC
- MRD市场需求文档结构
- java 解析xml saxreader_Java中使用DOM和SAX解析XML文件的方法示例
- 第三方统计分析埋点工具对比,神策、Ptmind、GrowingIO、国双,还有谷歌分析,谁更好?...
- 通过京东技术演进和淘宝技术演进,探察未来技术和架构
- 吴晓波:预见2021(跨年演讲 —— 08 超级城市大赛鸣枪)
- 未收到服务器返回信息吗,inode 未收到服务器回应
- C/C++教程 第一章 —— 初识C/C++
- SSD性能测试工具-AS_SSD Benchmark
- 【Lua】Lua基础语法
- P8Z77-V flashback按钮位置
- JAXP对XML文档进行DOM解析实现增删改
- zip(压缩) 和 *zipped(解压)_CodingPark编程公园
- css3之制作旋转小风车
- Redis哨兵Sentinel
- 根因多维分析 | 一文看懂5大代表性算法的原理和优势
热门文章
- vscode格式化html代码失效了,VSCode格式化代码功能失效的bug解决方法
- 12【组合设计模式】
- HTML标签、认识浏览器
- image generation from scene graphs 论文+code复现总结
- GB/T 8170-2008 数值修约规则与极限数值的表示和判定
- 工作杂谈001-供应商对接
- uni-app - 苹果安卓系统监听物理返回按键(手机左滑返回监听)
- java毕业设计大学生能力建设项目管理系统Mybatis+系统+数据库+调试部署
- Spirng的事务 方法A调用方法B,事务是否失效
- 电商设计师(美工)必备的素材网站!