查询
布尔查询(bool query) 删除
条件删除 分析索引操作
查看索引映射信息查看索引配置信息查看写时分词结果 使用指定分词器结果业务操作
索引数据复制使用SQL语句查询索引别名使用
基础语法
查看别名新增别名【可批量】删除别名【可批量】 进阶语法
使用indeices数组语法在一个操作中为多个索引指向别名别名过滤器
查询 布尔查询(bool query)Bool查询语法有以下特点
- 子查询可以任意顺序出现可以嵌套多个查询,包括bool查询如果bool查询中没有must条件,should中必须至少满足一条才会返回结果。
bool查询包含四种操作符,分别是must,should,must_not,filter。他们均是一种数组,数组里面是对应的判断条件。
删除 条件删除must: 必须匹配。贡献算分
must_not:过滤子句,必须不能匹配,但不贡献算分
should: 选择性匹配,至少满足一条。贡献算分
filter: 过滤子句,必须匹配,但不贡献算分
DELETe index_name/_doc/_id
POST index_name/_delete_by_query
{
"query": {
"bool": {
"must": [
{
"term": {
"FIELD": {
"value": "VALUE"
}
}
}
]
}
}
}
分析索引操作
查看索引映射信息
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"
}
}
参考「Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?
使用SQL语句查询POST /_xpack/sql/translate?pretty
{
"query": "SELECT context FROM index_name where context like '%目录%'"
}
# v.7.0后
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"}}
}
}
]
}
如果想用一个别名对索引中的某个字段进行分组,可以选择别名过滤器



