(五) ElasticSearch 数据类型和文档CRUD操作

news/2024/10/29 3:24:10/

1.ES数据类型

官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html#_complex_datatypes

核心数据类型(Core Data Types):

核心数据类型是 Elasticsearch 最基本和常用的数据类型,用于存储大部分数据。这些核心数据类型包括:

  • Text(文本):用于存储长文本数据,进行全文搜索和分析。
  • Keyword(关键字):用于存储精确值,用于过滤、聚合和精确匹配。
  • Numeric(数值):用于存储数值数据,包括整数、浮点数等。
  • Date(日期):用于存储日期和时间数据。由于Json没有date类型,所以es通过识别字符串是否符合format定义的格式来判断是否为date类型。
  • Boolean(布尔):用于存储布尔值。
  • Binary(二进制):用于存储二进制数据。
  • Range(范围):Range 类型用于存储数值范围、日期范围和 IP 范围等。它允许你对字段进行范围查询和范围聚合操作。

复杂数据类型(Complex Data Types):

复杂数据类型允许存储结构化的数据,如对象、数组和嵌套字段。这些复杂数据类型包括:

  • Object(对象):用于存储嵌套对象或复杂结构的数据。
  • Array(数组):用于存储多个值的列表。直接使⽤[ ]定义即可,数组中所有的值必须是同⼀种数据类型, 不⽀持混合数据类型的数组:

使用复杂数据类型可以创建更灵活和复杂的数据结构,支持嵌套查询和聚合操作。

专用数据类型(Specialized Data Types):

专用数据类型是 Elasticsearch 提供的特定用途的数据类型,用于解决特定领域的需求。这些专用数据类型包括:

  • GeoPoint(地理点):用于存储地理坐标点,支持地理空间搜索和距离计算。
  • GeoShape(地理形状):用于存储复杂的地理形状数据,如多边形、线和点。
  • IP(IP 地址):用于存储 IP 地址,支持 IP 地址范围查询和聚合操作。本质上是⼀个⻓整型字段

专用数据类型使得 Elasticsearch 可以更好地处理与地理位置和网络地址相关的数据

2.ES文档CRUD操作

新增文档

1)指定id方式新增:

PUT /my_index/_doc/1{"title": "Elasticsearch","content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

2)不指定id方式新增:

PUT /my_index/_doc{"title": "Elasticsearch","content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

3)指定id的方式新增,防止因为id相同误修改,可以指定操作类型:

PUT /my_index/_doc/1?op_type=create{"title": "Elasticsearch","content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}

4)开启自动创建索引:
查看auto_create_index开关状态:

GET /_cluster/settings

在这里插入图片描述
如上图所示没有auto_create_index字段,或者为false表示未开启
开启自动创建索引:

PUT _cluster/settings{"persistent": {"action.auto_create_index": "true"}
}

开启自动创建索引后,会更加数据格式自动匹配映射。

查看文档

1)根据id查看

GET /my_index/_doc/1

2)查看多个

POST /my_index/_doc/mget{"ids" : ["1", "2"]
}

修改文档

1)更新文档数据

POST /my_index/_doc/1/_update{"doc": {"content": "Elasticsearch is a distributed, RESTful search and analytics platform."}
}

2)向_source字段,增加⼀个字段

POST my_index/_update/1{"script": "ctx._source.lable = es"
}

3)向_source字段,删除⼀个字段

POST my_index/_update/1{"script": "ctx._source.remove(\"lable \")"
}

4)根据条件参数,更新指定⽂档的字段

upsert 当指定的⽂档不存在时,upsert参数包含的内容将会被插⼊到索引中,作为⼀个
新⽂档;如果指定的⽂档存在,ElasticSearch引擎将会执⾏指定的更新逻辑。

POST my_index/_update/1{"script": {"source": "ctx._source.lable+= params.lable","params": {"lable": "good"}},"upsert": {"lable": "just so so"}
}

删除文档

DELETE /my_index/_doc/1

http://www.ppmy.cn/news/383099.html

相关文章

PMP证书能直接升级项目管理专业人员能力评价(CSPM)三级吗?

2021年10月,中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系,开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会(CAS)组织开展的项…

关于 QQ泫舞刷点卷软件

力求。。。 各位 哥哥 姐姐 们 你们谁会搞 这 高端外挂吗刷 点卷 给个我 好吗 嘿嘿 刷J别的也可以也忽忽

php按选定日期查询,php mysql查询指定范围内日期

摘要 腾兴网为您分享:php mysql查询指定范围内日期,掌上新华,掌上公交,学习帮,喜马拉雅等软件知识,以及mts,97漫画网,三菱plc编程软件win10,零点八,2016考研国家线&#…

按键精灵--炫舞游戏源码

按键精灵–炫舞游戏源码 ImgID findImg(0, 0, 1366, 768, "按键精灵.bmp") 起点x Imgx : 起点y Imgy //850,676 四方向图片 "上.bmp|下.bmp|左.bmp|右.bmp" x1 起点x 494 - 850 : y1 起点y 555 - 676 x2 起点x 594 - 850 : y2 起点y 628 - 67…

3D游戏设计读书笔记一

3D游戏设计读书笔记一 二、游戏分类与热点探索 1.使用思维导图描述游戏的分类。(游戏分类方法特别多) 2. 结合手机游戏市场的下载量与排名等数据,结合游戏分类图,描述游戏市场的热点。 (1)2016年手机游戏…

口袋网咖已有服务器在使用怎么注销,口袋网咖_口袋网咖常见问题_口袋网咖推荐_快啦网...

简介: 口袋网咖是专门为游戏高玩打造的手机变电脑软件,虚拟电脑神器,体验各种电脑游戏,对手机配置要求真的不高哦。快啦网为大家分享口袋网咖专区,一起来看看吧~ 口袋网咖介绍 口袋网咖免费版--用手机可以玩电脑游戏、…

腾讯游戏人生 android,腾讯游戏

1.腾讯游戏人生成长系统定义 成长系统是腾讯游戏人生平台根据用户开通游戏、玩游戏以及付费情况对所有腾讯游戏用户的一种回馈。腾讯游戏用户可以在成长系统中参加抽奖、兑换商品、享受特权服务等。成长系统包含等级和活跃度两个属性。 2.游戏成长值、等级、活跃度获得途径 凡开…

口袋网咖已有服务器在使用怎么注销,口袋网咖_口袋网咖常见问题_口袋网咖专区...

口袋网咖是专门为游戏高玩打造的手机变电脑软件,虚拟电脑神器,体验各种电脑游戏,非常的方便,能让小伙伴尽情的体验手机电脑的感觉,很多小伙伴在使用过程中遇到了一些问题,快啦网为大家分享口袋网咖常见问题…