查询

布尔查询(bool query)

Bool查询语法有以下特点

  1. 子查询可以任意顺序出现
  2. 可以嵌套多个查询,包括bool查询
  3. 如果bool查询中没有must条件,should中必须至少满足一条才会返回结果。

bool查询包含四种操作符,分别是mustshouldmust_notfilter。他们均是一种数组,数组里面是对应的判断条件。

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_wordik_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语句相关推荐

  1. mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...

    扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库  innobackupex  ...

  2. mysql用户管理,常用sql语句,mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...

  3. SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制...

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...

  4. Oracle 数据库常用操作语句大全

    原文:Oracle 数据库常用操作语句大全 一.Oracle数据库操作 1.创建数据库      create database databasename 2.删除数据库      drop data ...

  5. concat mysql sql注入_sql注入-mysql注入基础及常用注入语句

    最近在教学中,关于SQL注入,总发现学生理解起来有些难度,其实主要的原因是对各类数据库以及SQL语句不熟悉,今天先介绍mysql注入需要掌握的基础, Mysql内置information_schema ...

  6. MySQL用户管理、常用sql语句、数据库备份

    13.4 MySQL用户管理 创建用户并授权 指定登录IP [root@centos-01linux ~]# mysql -uroot -p Enter password: Welcome to th ...

  7. 55:Mysql用户管理|常用sql语句|mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> 1.Mysql用户管理: 场景,为了安全,新建的站点,创建新的用户,或者给已有用户授权,对某个库或者某个表有权限: 语法: g ...

  8. MySQL用户管理、常用SQL语句、MySQL数据库备份恢复

    mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...

  9. HiveSQL常用数据处理语句

    HiveSQL运行优化参数配置 HiveSQL常用数据处理语句 HiveSQL中复杂数据类型操作 Hive 采用了类似SQL 的查询语言 HQL(Hive Query Language),因此很容易将 ...

最新文章

  1. php专周总结,【嘉兴东臣php】HTML5、CSS3学习周总结
  2. 点击显示底框颜色,默认显示第一个。
  3. 武汉大学 RSIDEA 团队开源LoveDA:可同时推进语义分割和迁移学习
  4. 云盘存储 教学反思_现代教育技术
  5. 中断(二)—— x86 APIC
  6. MRD市场需求文档结构
  7. java 解析xml saxreader_Java中使用DOM和SAX解析XML文件的方法示例
  8. 第三方统计分析埋点工具对比,神策、Ptmind、GrowingIO、国双,还有谷歌分析,谁更好?...
  9. 通过京东技术演进和淘宝技术演进,探察未来技术和架构
  10. 吴晓波:预见2021(跨年演讲 —— 08 超级城市大赛鸣枪)
  11. 未收到服务器返回信息吗,inode 未收到服务器回应
  12. C/C++教程 第一章 —— 初识C/C++
  13. SSD性能测试工具-AS_SSD Benchmark
  14. 【Lua】Lua基础语法
  15. P8Z77-V flashback按钮位置
  16. JAXP对XML文档进行DOM解析实现增删改
  17. zip(压缩) 和 *zipped(解压)_CodingPark编程公园
  18. css3之制作旋转小风车
  19. Redis哨兵Sentinel
  20. 根因多维分析 | 一文看懂5大代表性算法的原理和优势

热门文章

  1. vscode格式化html代码失效了,VSCode格式化代码功能失效的bug解决方法
  2. 12【组合设计模式】
  3. HTML标签、认识浏览器
  4. image generation from scene graphs 论文+code复现总结
  5. GB/T 8170-2008 数值修约规则与极限数值的表示和判定
  6. 工作杂谈001-供应商对接
  7. uni-app - 苹果安卓系统监听物理返回按键(手机左滑返回监听)
  8. java毕业设计大学生能力建设项目管理系统Mybatis+系统+数据库+调试部署
  9. Spirng的事务 方法A调用方法B,事务是否失效
  10. 电商设计师(美工)必备的素材网站!