SpringCloud:ElasticSearch之索引库操作

这篇具有很好参考价值的文章主要介绍了SpringCloud:ElasticSearch之索引库操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ElasticSearch索引库就类似数据库表,mapping映射就类似表的结构。

我们要向ElasticSearch中存储数据,必须先创建“库”和“表”。

1.mapping映射属性

mapping是对索引库中文档的约束,常见的mapping属性包括:

  • type:字段数据类型,常见的简单类型有:
    • 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
    • 数值:longintegershortbytedoublefloat
    • 布尔:boolean
    • 日期:date
    • 对象:object
  • index:是否创建索引,默认为true
  • analyzer:使用哪种分词器
  • properties:该字段的子字段

例如下面的json文档:

{
    "age": 21,
    "weight": 52.1,
    "isMarried": false,
    "info": "Java程序员",
    "email": "dc@dcxuexi.cn",
    "score": [99.1, 99.5, 98.9],
    "name": {
        "firstName": "操",
        "lastName": "曹"
    }
}

对应的每个字段映射(mapping):

  • age:类型为integer;参与搜索,因此需要indextrue;无需分词器
  • weight:类型为float;参与搜索,因此需要indextrue;无需分词器
  • isMarried:类型为boolean;参与搜索,因此需要indextrue;无需分词器
  • info:类型为字符串,需要分词,因此是text;参与搜索,因此需要indextrue;分词器可以用ik_smart
  • email:类型为字符串,但是不需要分词,因此是keyword;不参与搜索,因此需要indexfalse;无需分词器
  • score:虽然是数组,但是我们只看元素的类型,类型为float;参与搜索,因此需要indextrue;无需分词器
  • name:类型为object,需要定义多个子属性
    • name.firstName:类型为字符串,但是不需要分词,因此是keyword;参与搜索,因此需要indextrue;无需分词器
    • name.lastName:类型为字符串,但是不需要分词,因此是keyword;参与搜索,因此需要indextrue;无需分词器

2.索引库的CRUD

这里我们统一使用Kibana编写DSL的方式来演示。

环境:ElasticSearch7.X

2.1.创建索引库和映射

基本语法:
  • 请求方式:PUT
  • 请求路径:/索引库名,可以自定义
  • 请求参数:mapping映射

格式:

PUT /索引库名称
{
  "mappings": {
    "properties": {
      "字段名":{
        "type": "text",
        "analyzer": "ik_smart"
      },
      "字段名2":{
        "type": "keyword",
        "index": false
      },
      "字段名3":{
        "properties": {
          "子字段": {
            "type": "keyword"
          }
        }
      },
      // ...略
    }
  }
}
示例:
PUT /dcxuexi
{
  "mappings": {
    "properties": {
      "info":{
        "type": "text",
        "analyzer": "ik_smart"
      },
      "email":{
        "type": "keyword",
        "index": falsae
      },
      "name":{
        "properties": {
          "firstName": {
            "type": "keyword"
          }
        }
      },
      // ... 略
    }
  }
}

SpringCloud:ElasticSearch之索引库操作

2.2.查询索引库

基本语法

  • 请求方式:GET

  • 请求路径:/索引库名

  • 请求参数:无

格式

GET /索引库名

示例

SpringCloud:ElasticSearch之索引库操作

2.3.修改索引库

倒排索引结构虽然不复杂,但是一旦数据结构改变(比如改变了分词器),就需要重新创建倒排索引,这简直是灾难。因此索引库**一旦创建,无法修改mapping **。

虽然无法修改mapping中已有的字段,但是却允许添加新的字段到mapping中,因为不会对倒排索引产生影响。

语法说明

PUT /索引库名/_mapping
{
  "properties": {
    "新字段名":{
      "type": "integer"
    }
  }
}

示例

SpringCloud:ElasticSearch之索引库操作

2.4.删除索引库

语法:

  • 请求方式:DELETE

  • 请求路径:/索引库名

  • 请求参数:无

格式:

DELETE /索引库名

kibana中测试:

SpringCloud:ElasticSearch之索引库操作

2.5.总结

索引库操作有哪些?文章来源地址https://www.toymoban.com/news/detail-416916.html

  • 创建索引库:PUT /索引库名
  • 查询索引库:GET /索引库名
  • 删除索引库:DELETE /索引库名
  • 添加字段:PUT /索引库名/_mapping

到了这里,关于SpringCloud:ElasticSearch之索引库操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Elasticsearch(1)——倒排索引与HTTP操作Elasticsearch

    1 前言 Elastic Stack 核心产品包括 Elasticsearch【存储数据】、Kibana【展示数据】、Beats 和 Logstash【收集与传输数据】(也称为 ELK Stack)等等。能够安全可靠地从任何来源获取任何格式的数据,然后对数据进行搜索、分析和可视化。sa Elasticsearch 是一个分布式、RESTful 风格的搜索和

    2024年02月12日
    浏览(38)
  • Elasticsearch的索引库和文档操作、RestClient的索引库和文档操作

    Linux系统通过Docker安装Elasticsearch、部署kibana Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。 简单的说

    2024年02月04日
    浏览(47)
  • Elasticsearch 索引库与文档操作

    2023年04月19日
    浏览(52)
  • elasticsearch 使用 RestAPI 操作索引库

    我们统一的把mysql与elasticsearch的概念做一下对比: MySQL Elasticsearch 说明 Table Index 索引(index),就是文档的集合,类似数据库的表(table) Row Document 文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式 Column Field 字段(Field),就是JSON文档中的字段,类

    2024年02月07日
    浏览(46)
  • Elasticsearch初识之索引的批量操作

    批量查询和批量增删改 批量查询 批量写入: 注意: bulk api对json的语法有严格的要求,除了delete外,每一个操作都要两个json串(metadata和business data),且每个json串内不能换行,非同一个json串必须换行,否则会报错; bulk操作中,任意一个操作失败,是不会影响其他的操作的

    2024年02月02日
    浏览(42)
  • ElasticSearch索引库、文档、RestClient操作

    es中的索引是指相同类型的文档集合 ,即mysql中表的概念 映射:索引中文档字段的约束,比如名称、类型 mapping映射是对索引库中文档的约束。类似mysql对表单字段的约束 type :字段数据类型,常见的类型有: 字符串:text(可分词的文本)、keyword(不可分词的文本,例如国家

    2024年02月10日
    浏览(48)
  • 【SpringBoot】整合Elasticsearch 操作索引及文档

    官网操作文档:Elasticsearch Clients | Elastic                踩坑太多了。。。这里表明一下Spring Boot2.4以上版本可能会出现问题,所以我降到了2.2.1.RELEASE。对于现在2023年6月而言,Es版本已经到了8.8,而SpringBoot版本已经到了3.x版本。如果是高版本的Boot在配置类的时候会发现

    2024年02月09日
    浏览(53)
  • elasticsearch(三)-- 理解ES的索引操作

    上一章我们主要学习了es的几个客户端,那么我们后面也主要通过kibana客户端、HighLevelClient高级客户端这两个来学习es. 这一章的学习我们主要是学习一些Elasticsearch的基础操作,主要是深入一些概念,比如索引的具体操作,映射的相关语法,对数据类型,文档的操作。那么主要

    2024年02月04日
    浏览(48)
  • 常规操作elasticSearch查看和索引(存储)数据

    常规操作elasticSearch: 对于elasticSearch的操作 通常用rest API完成 查看所有节点: 示例返回: 查看健康状态: 示例返回: 查看主节点: 示例返回: 查看所有索引(类比mysql查看所数据库): 示例返回: 保存一条数据 put 保存: 注意: put保存必须有id(唯一识别) 示例返回:

    2023年04月08日
    浏览(46)
  • Elasticsearch学习-索引操作及Mapping映射

    在7.X版本前类似于关系型数据库中的数据库概念,8.X版本后删除了type概念,索引类似于关系型数据库中的表 相当于关系型数据库中的一条数据,最小单元 每一个节点就是一个ES实例(一个java进程),一个节点 != 一台服务器 多个节点组成分布式系统,ES原生分布式,已启动一

    2023年04月22日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包