Elasticsearch 常用查询语句大全

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 【7月更文挑战第8天】Elasticsearch 常用查询语句大全

在使用 es 的过程中,总是会用到 es 的查询语句,那么下面主要对 es 日常用到的查询语句 做一个总结展示,记录查询语句方便后续用到时查询。

查询现有索引

查询当前连接的 es 的所有索引

GET /_cat/indices?v

image.png

创建索引

简单的创建索引语句如下,当然你也可以在创建索引时指定分片等

PUT /test
{
  "mappings": {
    "test":{
      "properties": {
        "content":{
          "type": "text", 
          "analyzer": "hanlp"
        }
      }
    }
  }
}

image.png

查询索引结构

当你需要用到某个索引,但是由于时间久忘记具体索引字段时可以使用如下语句查询索引结构,索引字段

GET /test/_mapping

image.png

插入数据

可以通过put 命令为指定索引插入数据,比如

PUT test/test/1
{
  "content":"初级会计资格证"
}

image.png

查询索引数据

通过以下命令查询索引数据,暂时没有指定具体的查询条件

GET test/_search

image.png

查看索引磁盘占用信息

可以通过命令查询指定索引的磁盘占用信息

GET /_cat/indices/test?v

image.png

删除索引

删除索引时需要注意,删除的索引数据不能恢复,谨慎操作

DELETE test

查看分词器分词结果

对于新的分词器,不了解其分词后的具体效果,可以通过命令执行分词器查看其分词结果

POST /_analyze
{
  "analyzer": "hanlp", 
  "text": "查看哦,同时我们也会给您分配专属的学习规划师带"
}

image.png

指定查询数量

当需要指定每页查询数量时可以通过 size 控制

GET crm_meiqia_conversation/_search
{
  "size":200
}

指定条件查询

执行条件查询分为多种条件,下面来指定一个基本的查询

GET crm_meiqia_conversation/_search
{
  "query": {
    "bool" : {
      "must" : [
        {
          "bool" : {
            "filter" : [
              {
                "range" : {
                  "convStartDate" : {
                    "from" : 1719849600000,
                    "to" : null,
                    "include_lower" : true,
                    "include_upper" : true,
                    "boost" : 1.0
                  }
                }
              },
              {
                "range" : {
                  "convEndDate" : {
                    "from" : null,
                    "to" : 1719935999000,
                    "include_lower" : true,
                    "include_upper" : true,
                    "boost" : 1.0
                  }
                }
              },
              {
                "term" : {
                  "clientInfo.uid" : {
                    "value" : "34546407",
                    "boost" : 1.0
                  }
                }
              },
              {
                "term" : {
                  "agentId" : {
                    "value" : "10002351",
                    "boost" : 1.0
                  }
                }
              },
              {
                "match_phrase_prefix" : {
                  "convContent.content" : {
                    "query" : "请您稍等",
                    "slop" : 0,
                    "max_expansions" : 50,
                    "boost" : 1.0
                  }
                }
              }
            ],
            "adjust_pure_negative" : true,
            "boost" : 1.0
          }
        }
      ],
    "adjust_pure_negative" : true,
    "boost" : 1.0
  }
  }
}

image.png

数据迁移

当需要更改索引结构时,需要先把原有索引的数据迁移到相同临时索引中,待更改索引结构之后再迁移回来,迁移数据用到

POST _reindex
{  
  "source": {  
    "index": "crm_meiqia_conversation",
    "size":500
  },  
  "dest": {  
    "index": "crm_meiqia_conversation_tmp"  
  }
}

或者异步迁移数据

POST _reindex?wait_for_completion=false
{  
  "source": {  
    "index": "crm_meiqia_conversation",
    "size":500
  },  
  "dest": {  
    "index": "crm_meiqia_conversation_tmp"  
  }
}

异步迁移数据,数据迁移结果通过命令查看

GET /_tasks/cbwVMU6UTACFPxKW0zkOcw:456723575

统计索引数据量

想要统计索引的全部数据量,可以通过如下命令

GET crm_meiqia_conversation/_count

image.png

更新数据

更新指定索引指定对象字段中数据内容

POST test/test/1/_update
{
  "doc":{
    "content":"ceshi测试"
  }
}

image.png

数据更新成功后查看数据可以看到

image.png

到这里关于es 日常用到的相关语句差不多整理完了,有需要的可以查阅哈。


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
5天前
|
自然语言处理 Java 关系型数据库
ElasticSearch 实现分词全文检索 - 聚合查询 cardinality
ElasticSearch 实现分词全文检索 - 聚合查询 cardinality
7 1
|
1月前
|
存储 自然语言处理 关系型数据库
Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别
【7月更文挑战第3天】Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别
|
5天前
|
存储 自然语言处理 Java
ElasticSearch 实现分词全文检索 - 经纬度定位商家距离查询
ElasticSearch 实现分词全文检索 - 经纬度定位商家距离查询
4 0
|
5天前
|
自然语言处理 Java
ElasticSearch 实现分词全文检索 - 高亮查询
ElasticSearch 实现分词全文检索 - 高亮查询
11 0
|
5天前
|
缓存 自然语言处理 Java
ElasticSearch 实现分词全文检索 - filter查询
ElasticSearch 实现分词全文检索 - filter查询
9 0
|
5天前
|
自然语言处理 Java
ElasticSearch 实现分词全文检索 - 复合查询
ElasticSearch 实现分词全文检索 - 复合查询
10 0
|
5天前
|
自然语言处理 Java 关系型数据库
ElasticSearch 实现分词全文检索 - id、ids、prefix、fuzzy、wildcard、range、regexp 查询
ElasticSearch 实现分词全文检索 - id、ids、prefix、fuzzy、wildcard、range、regexp 查询
14 0
|
5天前
|
自然语言处理 Java
ElasticSearch 实现分词全文检索 - match、match_all、multimatch查询
ElasticSearch 实现分词全文检索 - match、match_all、multimatch查询
9 0
|
5天前
|
自然语言处理 Java
ElasticSearch 实现分词全文检索 - term、terms查询
ElasticSearch 实现分词全文检索 - term、terms查询
10 0
|
26天前
|
存储 数据库 索引
面试题ES问题之动态映射的定义如何解决
面试题ES问题之动态映射的定义如何解决
25 1