当前位置: 首页 > news >正文

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

文章目录

  • 二、索引库与文档
    • 2.1 `mapping`映射属性
    • 2.2 操作索引库
    • 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:该字段的子字段
{"age": 21,"weight": 52.1,"info":"我们在学ES","isMarried": false,"email":"zy@itcast.cn","score": [99.199.598.9],"name":{"firstName":"云","LastName":"赵"}
}

2.2 操作索引库

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

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

索引库的CRUD

# 创建索引库
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"}}}}}
}
# 创建
PUT /hhyy
# 删除
DELETE /hhyy
# 查询
GET /hhyy# 修改[添加新字段],只能添加,不能更新
# 更新索引过于消耗资源
PUT /hhyy/_mapping
{"properties":{"age":{"type":"integer"}}
}

2.3 文档操作

  • 添加文档

新增文档的DSL语法如下:

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

示例:

# 插入文档
POST /hhyy/_doc/1
{"info":"我们学习ES","email":"hhh@out.com","name":{"firstName":"Jack","lastName":"hh"}
}# 获取
GET /hhyy/_doc/1
# 删除
DELETE /hhyy/_doc/1

修改

# 修改文档
# 全量修改,会删除旧文档,添加新文档
# 若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)

http://www.lryc.cn/news/197120.html

相关文章:

  • few shot learnning笔记
  • 2022最新版-李宏毅机器学习深度学习课程-P25 Spacial Transformer Layer
  • 轻松上手,制作电子期刊就这么简单
  • 网络电视机顶盒怎么样?内行揭晓网络电视机顶盒排名
  • 2023秋招华为技术岗线上面试经历
  • 保姆级VitrualBox下载ubantu
  • 【学习笔记】RabbitMQ-6 消息的可靠性投递2
  • 黑豹程序员-知识点-写一个bat一次执行多条命令
  • 从头开始机器学习:线性回归
  • 1-k8s1.23.6-底座搭建-基于docker
  • 【SA8295P 源码分析 (一)】76 - Thermal 功耗 之 /dev/thermalmgr 相关调试命令汇总
  • 每日汇评:随着上升趋势的恢复,黄金在1950美元上方等待破位
  • postgresql字符串处理的函数
  • (1)攻防世界web-Training-WWW-Robots
  • list.set交换数据需要(or不需要)添加其他中间变量,两个例子告诉你
  • Linux中的主要系统调用
  • 在vscode中配置git bash终端、git 源码管理
  • (三十四)大数据实战——scala运行环境安装配置及IDEA开发工具集成
  • Double 4 VR智能互动教学系统的教学应用
  • GPU 驱动下载记录
  • KILM: Knowledge Injection into Encoder-Decoder Language Models
  • 205、使用消息队列实现 RPC(远程过程调用)模型的 服务器端 和 客户端
  • C++中的函数
  • java操作时间的方式
  • 上网冲浪发现多处XSS
  • 机器学习的打分方程汇总
  • 一文了解数据管理框架以及数据战略制定方法
  • 智能管家“贾维斯”走进现实?AI Agent或成2023科技领域新风向标
  • 【广州华锐互动】VR高层小区安全疏散演练系统
  • 用Python做一个文件夹整理工具