二、ElasticSearch中索引库与文档操作

文章目录

  • 二、索引库与文档
    • [2.1 `mapping`映射属性](#2.1 mapping映射属性)
    • [2.2 操作索引库](#2.2 操作索引库)
    • [2.3 文档操作](#2.3 文档操作)

二、索引库与文档

2.1 mapping映射属性

  • mapping映射属性

官方网址:https://www.elastic.co/guide/en/elasticsearch/reference/7.12/dynamic-mapping.html

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

  • type: 字段数据类型,常见的简单类型有:
    • 字符串: text (可分词的文本);keyword (精确值,例如: 品牌、国家、ip地址)。如下:email字段就是不可拆分字段。info属于可拆分字段。
    • 数值: long、integer、short、byte、double、float、
    • 布尔: boolean
    • 日期: date
    • 对象: object
  • index:是否创建索引,默认为true
  • analyzer:使用哪种分词器
  • properties:该字段的子字段
json 复制代码
{
    "age": 21,
    "weight": 52.1,
    "info":"我们在学ES",
    "isMarried": false,
    "email":"zy@itcast.cn",
    "score": [99.1,99.5,98.9],
    "name":{
		"firstName":"云",
        "LastName":"赵"
    }
}

2.2 操作索引库

ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。创建索引库和mappingDSL语法如下:

json 复制代码
PUT /索引库名称
"mappings": {
    "properties": {
        "字段名":{
            "type":"text",
            "analyzer":"ik_smart"
        }
		"字段名2":{
        	"type":"keyword",
        	"index":"false"
    	}
		"字段名3":{
    		"properties": {
    			"子字段": {"type":"keyword"}
			}
		}
	},
	// 略
}

索引库的CRUD

json 复制代码
# 创建索引库
PUT /hhyy
{
  "mappings": {
    "properties": {
      "info":{
        "type":"text",
        "analyzer": "ik_smart"
      },
      "email":{
        "type": "keyword",
        "index": false
      },
      "name":{
        "type": "object",
        "properties": {
          "firstName":{
            "type":"keyword"
          },
          "lastName":{
            "type":"keyword"
          }
        }
      }
    }
  }
}
json 复制代码
# 创建
PUT /hhyy
# 删除
DELETE /hhyy
# 查询
GET /hhyy

# 修改[添加新字段],只能添加,不能更新
# 更新索引过于消耗资源
PUT /hhyy/_mapping
{
  "properties":{
    "age":{
      "type":"integer"
    }
  }
}

2.3 文档操作

  • 添加文档

新增文档的DSL语法如下:

json 复制代码
POST /索引库名/_doc/文档id
{
  "字段1":"值1",
  "字段2":"值2",
  "字段3":{
    "子属性1":"值3",
    "子属性2":"值4"
  },
}		

示例:

json 复制代码
# 插入文档
POST /hhyy/_doc/1
{
  "info":"我们学习ES",
  "email":"hhh@out.com",
  "name":{
    "firstName":"Jack",
    "lastName":"hh"
  }
}

# 获取
GET /hhyy/_doc/1
# 删除
DELETE /hhyy/_doc/1

修改

json 复制代码
# 修改文档
# 全量修改,会删除旧文档,添加新文档
# 若id存在就修改,不存在就新增
PUT /hhyy/_doc/2
{
  "info":"我们学习ES1111",
  "email":"hhh@out.com",
  "name":{
    "firstName":"Jack",
    "lastName":"hh"
  }
}
GET /hhyy/_doc/2

# 增量修改,
POST /hhyy/_update/2
{
  "doc":{
    "info":"我们都要努力学习ES"
  }
}

GET /hhyy/_doc/2

上一篇:一、初识 Elasticsearch:概念,安装,设置分词器

下一篇:三、RestClient(writing)

相关推荐
寻爱的希斯克利夫7 小时前
tomcat 配置jenkins_home 目录
servlet·tomcat·jenkins
Lill_bin8 小时前
深入理解ElasticSearch集群:架构、高可用性与数据一致性
大数据·分布式·elasticsearch·搜索引擎·zookeeper·架构·全文检索
涛思数据(TDengine)9 小时前
TDengine 与 SCADA 强强联合:提升工业数据管理的效率与精准
大数据·时序数据库·tdengine
isNotNullX10 小时前
如何用SQL Server和Oracle进行数据同步?
大数据·数据库·sql·oracle
RwTo11 小时前
Elasticsearch 聚合搜索
大数据·elasticsearch·搜索引擎·全文检索
isNotNullX11 小时前
HBase在大数据实时处理中的角色
大数据·数据库·hbase
白总Server11 小时前
MySQL在大数据场景应用
大数据·开发语言·数据库·后端·mysql·golang·php
求学小火龙12 小时前
ElasticSearch介绍+使用
java·大数据·elasticsearch
檀越剑指大厂12 小时前
【Elasticsearch系列六】系统命令API
大数据·elasticsearch·搜索引擎
数据运营新视界12 小时前
你知道企业架构中核心的4大架构联系和不同吗?
大数据·架构