栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

常用Elasticsearch语句

常用Elasticsearch语句

目录

查询

布尔查询(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"}}
      }
    }
  ]
}

如果想用一个别名对索引中的某个字段进行分组,可以选择别名过滤器

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/730330.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号