查询
布尔查询(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/_idPOST 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"}} } } ]}
如果想用一个别名对索引中的某个字段进行分组,可以选择别名过滤器