【ElasticSearch8.X】学习笔记(二)

这篇具有很好参考价值的文章主要介绍了【ElasticSearch8.X】学习笔记(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

四、基础操作

在本人blog中ElasticSearch7.x使用postman进行演示过基础操作
因此在ElasticSearch8.x通过Kibana进行演示

4.1、索引操作

4.1.1、创建索引

ES 软件的索引可以类比为 MySQL 中表的概念,创建一个索引,类似于创建一个表
ES 不允许修改索引

# 创建索引
# PUT+索引名
PUT myindex

# 增加索引带自定义配置(JSON格式)
PUT test_index
{
  "aliases": {
    "test1": {}
  }
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.1.2、查询指定索引

根据索引名称查询指定索引,如果查询到,会返回索引的详细信息

# 查询索引
# GET 索引名称
GET myindex

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.1.3、查询所有索引

这里请求路径中的_cat 表示查看的意思,indices表示索引,所以整体含义就是查看当前 ES 服务器中的所有索引

# 查询索引
GET _cat/indices

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.1.4、 删除索引

删除指定已存在的索引

# 删除索引
# DELETE+索引名称
DELETE test_index

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.2、文档操作

4.2.1、创建文档

这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式
如果在创建数据时,指定唯一性标识,那么请求范式 POST,PUT 都可以
如果没有指定数据唯一性标识,只能使用 POST 请求

# 创建文档
# 创建文档
POST myindex/_doc/001
{
  "id" : 1001,
  "name" : "zhangsan",
  "age" : 30
}
POST myindex/_doc/002
{
  "id" : 1002,
  "name" : "lisi",
  "age" : 18
}
POST myindex/_doc/003
{
  "id" : 1004,
  "name" : "wangwu",
  "age" : 30
}
POST myindex/_doc/004
{
  "id" : 1004,
  "name" : "zhaoliu",
  "age" : 35
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.2.2、查询文档

根据唯一性标识可以查询对应的文档

# 查询文档
GET myindex/_doc/001

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.2.3、修改文档

修改文档本质上和新增文档是一样的,如果存在就修改,如果不存在就新增

# 修改文档
PUT myindex/_doc/001
{
  "age":20
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.2.4、删除文档

删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)

# 删除文档
DELETE myindex/_doc/001

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.2.5、查询所有文档

# 查询所有文档
GET myindex/_search

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.3、数据搜索

4.3.1、匹配查询文档

这里的查询表示文档数据中 JSON 对象数据中的 name 属性是lisi

GET myindex/_search
{
  "query": {
  "match": {
    "name": "lisi" #不会查出li si 此时查询关键字是lisi 而li si 的关键词是两个【li】【si】匹配不上
  }
  }
}

GET myindex/_search
{
  "query": {
    "term": {
      "name": {
        "value": "li si" #会查出li si 不会查出lisi  此时关键字是li si
      }
    }
  }
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.3.2、匹配查询字段

默认情况下,Elasticsearch 在搜索的结果中,会把文档中保存在_source 的所有字段都返回。如果我们只想获取其中的部分字段,我们可以添加_source 的过滤

GET myindex/_search
{
  "_source": ["name","age"], 
  "query": {
    "term": {
      "name": {
        "value": "lisi"
      }
    }
  }
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.3.3、组合"or"

GET myindex/_search
{
  "_source": ["name","age"], 
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "name": "lisi"
          }
        },
        {
          "match": {
            "age": 35
          }
        }
      ]
    }
  }
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.3.4、排序

GET myindex/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.3.5、分页

GET myindex/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 2
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.3.6、分组

GET myindex/_search
{
 "aggs": {
   "ageGroup": {
     "terms": {
       "field": "age"
     }
   }
 },
 "size": 0 #只显示分组信息 不显示源信息
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.3.7、平均值

GET myindex/_search
{
 "aggs": {
   "ageAvg": {
     "avg": {
       "field": "age"
     }
   }
 },
 "size": 0
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.3.8、求和

GET myindex/_search
{
 "aggs": {
   "ageGroup": {
     "terms": {
       "field": "age"
     },
     "aggs": {
       "ageSum": {
         "sum": {
           "field": "age"
         }
       }
     }
   }
 },
 "size": 0
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

4.3.9、TopN

GET myindex/_search
{
 "aggs": {
   "Top3": {
     "top_hits": {
       "sort": [
         {
           "age": {
             "order": "desc"
           }
         }
         ], 
       "size": 3
     }
   }
 },
 "size": 0
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

五、 索引模板

我们之前对索引进行一些配置信息设置,但是都是在单个索引上进行设置。在实际开发中,我们可能需要创建不止一个索引,但是每个索引或多或少都有一些共性。比如我们在设计关系型数据库时,一般都会为每个表结构设计一些常用的字段,比如:创建时间,更新时间,备注信息等。elasticsearch 在创建索引的时候,就引入了模板的概念,你可以先设置一些通用的模板,在创建索引的时候,elasticsearch 会先根据你创建的模板对索引进行设置。

5.1、创建模板

# 模板名称小写
PUT _template/mytemplate
{
 "index_patterns" : [
 "my*"
 ],
 "settings" : {
 "index" : {
 "number_of_shards" : "1"
 }
 },
 "mappings" : {
 "properties" : {
 "now": {
 "type" : "date",
 "format" : "yyyy/MM/dd"
 }
 }
 }
}

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

5.2、查看模板

GET /_template/mytemplate

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

5.3、验证模板是否存在

HEAD /_template/mytemplate

_cat/indices详解,Elasticsearch,学习,postman,elasticsearch

5.4、 创建索引

在创建索引的时候已经定义匹配的索引了 以my开头文章来源地址https://www.toymoban.com/news/detail-778963.html

PUT mytest

5.5、删除模板

DELETE /_template/mytemplate

到了这里,关于【ElasticSearch8.X】学习笔记(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch8 - Docker安装Elasticsearch8.12.2

    最近在学习 ES,所以需要在服务器上装一个单节点的 ES 服务器环境:centos 7.9 目前最新版本是 8.12.2 新增配置文件 elasticsearch.yml 解释一下,前三行是开启远程访问和跨域,最后一行是开启密码访问 Networking | Elasticsearch Guide [8.12] | Elastic 在宿主机创建容器的挂载目录,我的目录

    2024年04月15日
    浏览(53)
  • ElasticSearch8 - SpringBoot整合ElasticSearch

    springboot 整合 ES 有两种方案,ES 官方提供的 Elasticsearch Java API Client 和 spring 提供的 [Spring Data Elasticsearch](Spring Data Elasticsearch) 两种方案各有优劣 Spring:高度封装,用着舒服。缺点是更新不及时,有可能无法使用 ES 的新 API ES 官方:更新及时,灵活,缺点是太灵活了,基本是一

    2024年03月25日
    浏览(97)
  • Docker安装ElasticSearch8.X docker安装elasticsearch8.X完整详细教程

    Docker常用命令大全 Docker ElasticSearch 官方仓库 Docker 生产环境安装Elasticsearch教程 我这边选择的版本是 docker pull elasticsearch:8.8.1 在终端中执行以下命令以拉取 docker pull elasticsearch:8.8.1 根据自己使用过的版本: 使用以下命令创建一个新的 elasticsearch 容器并将其启动: --name 是 容器

    2024年02月15日
    浏览(45)
  • ElasticSearch篇——Restful风格详解以及常见的命令,涵盖_cat命令查看ES默认数据、索引和文档的增删改查以及复杂搜索,超详细、超全面、超细节!

    一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要是用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更加简洁,更有层次,更易于实现缓存等机制。 一、基本Rest命令说明 1、命令 对应的就是head可视化界面的下面的信息(换句话

    2024年01月16日
    浏览(46)
  • ElasticSearch8闪退

    点了.bat文件好几次,发现最后每次都是最后出现了一堆报错信息后一下就没了。 去ES安装目录下的logs文件夹中找到执行日志。 查看出错原因 报错内容为 是按照网上文档设置该节点为主节点的设置有问题。 由于下载的版本为8,去查找了官方文档Elasticsearch Guide 在ES8中设置主

    2023年04月08日
    浏览(33)
  • linux 卸载elasticsearch及安装elasticsearch8.5(rpm)

    目录 卸载elasticsearch rpm安装elasticsearch8.5 # 检查elasticsearch服务状态 # 停止elasticsearch服务状态 # 剔除elasticsearch服务 # 重载系统服务 # 查询rpm安装的elasticsearch # rpm卸载elasticsearch,elasticsearch-6.7.2-1.noarch名称 需要根据查询上一步查询结果来 # 删除残留文件 # 删除elasticsearch自定义文件

    2024年02月03日
    浏览(48)
  • 搭建Elasticsearch8.0集群

    PS:下面的机器名和后边要配置的集群节点名字没有任何关系,纯属巧合 ########################################### PS: ES8 自带 jdk ,所以不用配置 ########################################### 新建普通用户 ########################################### 下载、解压、修改属主属组为esuser(root) 新建数据和日志

    2024年02月03日
    浏览(47)
  • SpringBoot连接ElasticSearch8.*

    系统中需要使用到ElasticSearch进行内容检索,因此需要搭建SpringBoot + ElasticSearch的环境。

    2024年02月16日
    浏览(45)
  • springboot整合elasticsearch8

    1.引入maven依赖 2.application.yml添加配置 3.编写config文件 启动demo项目,通过控制台日志查看是否能够正常连接es。 4.在DemoApplicationTests编写简单测试操作es。

    2024年02月12日
    浏览(48)
  • ElasticSearch8 - 基本操作

    本文记录 ES 的一些基本操作,就是对官方文档的一些整理,按自己的习惯重新排版,凑合着看。官方的更详细,建议看官方的。 下文以 books 为索引名举例。 添加单个文档 (没有索引会自动创建) 不指定 id,会随机生成,如果需要指定 id,使用 POST books/_doc/id 还可以使用 put 的

    2024年04月09日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包