二、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)

相关推荐
yt004yt30 分钟前
### 越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
GreatVicent38 分钟前
腾讯AI产业大会解读:Agent进场,企业基础设施怎么搭
大数据·数据库·人工智能·llm·agent·企业信息化
m0_4665252943 分钟前
从火柴人看护画面看云从科技生态企业的隐私保护实践
大数据·人工智能·科技·microsoft
yt004yt1 小时前
越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
sxwuyanzu1 小时前
DeepSeek冲IPO-谁在为它付钱-公众号发布稿
大数据·人工智能·科技
邱海龙2 小时前
丘孔人工智能最前沿2026年9月12日:DeepSeek V4.1 Flash 正式发布,百万上下文接棒 V4 Pro
大数据
西木莉2 小时前
大数据落地六规则:先建数据灯塔,再谈技术革命
大数据
yunqiz3 小时前
ELK Stack生产环境部署指南:Filebeat + Elasticsearch + Logstash + Kibana
elk·elasticsearch
CIO_Alliance3 小时前
AI微调系列(2)| QLoRA:一张卡微调700亿参数,显存是怎么省下来的
大数据·人工智能·深度学习·ai·企业ai转型·企业cio联盟
远航计算机3 小时前
网站被 AI 收录要多久?从被抓取到被引用的完整时间表
大数据·人工智能·aigc