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

相关推荐
我是大AI1 天前
搜极星 GEO:让 AI 精准推荐,品牌不再隐形
大数据·人工智能·ai
2601_957787581 天前
企业内容矩阵系统:AI赋能下的全链路运营与获客升级
大数据·人工智能·矩阵
龙亘川1 天前
智慧政务大数据整体解决方案全解析|架构设计、建设内容、落地实践与价值复盘
大数据·政务
山川湖海1 天前
AI时代快速学编程语言的陷阱(以Python为例)
大数据·人工智能·python
春日见1 天前
5分钟入门强化学习之动态规划算法与实现
大数据·人工智能·python·算法·机器学习·计算机视觉
SNKXD_11 天前
2026品牌运营团队AI营销培训:TOP5轻量化课程适配常态化技能升级学习
大数据·人工智能·学习
TMT星球1 天前
AI时代的风控攻防战:Soul如何用AI治理AI
大数据·人工智能
肖有米XTKF86461 天前
肖有米开发团队:初语山言商城系统开发-初语山言模式制度解析
大数据·团队开发·csdn开发云
AI_yangxi1 天前
短视频矩阵系统哪个稳定
大数据·人工智能·矩阵
2601_957786771 天前
企业矩阵系统的实践与内容协同价值分析
大数据·人工智能·内容协同·数字化获客