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

这篇具有很好参考价值的文章主要介绍了(五) ElasticSearch 数据类型和文档CRUD操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

(五) ElasticSearch 数据类型和文档CRUD操作
如上图所示没有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引擎将会执⾏指定的更新逻辑。文章来源地址https://www.toymoban.com/news/detail-501315.html

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

到了这里,关于(五) ElasticSearch 数据类型和文档CRUD操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 4、Elasticsearch7.6.1 Java api操作ES(CRUD、两种分页方式、高亮显示)和Elasticsearch SQL详细示例

    1、介绍lucene的功能以及建立索引、搜索单词、搜索词语和搜索句子四个示例实现 2、Elasticsearch7.6.1基本介绍、2种部署方式及验证、head插件安装、分词器安装及验证 3、Elasticsearch7.6.1信息搜索示例(索引操作、数据操作-添加、删除、导入等、数据搜索及分页) 4、Elasticsearch7

    2024年02月16日
    浏览(79)
  • Elasticsearch中父子文档的关联:利用Join类型赋予文档的层级关系

    码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! Elasticsearch是一个强大的搜索引擎,它提供了丰富的功能来满足复杂的搜索需求。其中,父子索引类型的join功能是一个强大的工具,它允许我们在同一索引中创建具有层级关系的文档

    2024年04月15日
    浏览(42)
  • 原生语言操作和spring data中RestHighLevelClient操作Elasticsearch,索引,文档的基本操作,es的高级查询.查询结果处理. 数据聚合.相关性系数打分

    ​ Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasti

    2024年02月05日
    浏览(87)
  • Elasticsearch基本操作之文档操作

    本文来说下Elasticsearch基本操作之文档操作 文档概述 在创建好索引的基础上来创建文档,并添加数据。 这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式。 在 apifox 中,向 ES 服务器发 POST 请求 :http://localhost:9200/person/_doc,请求体内容为: 服务器响

    2024年02月01日
    浏览(39)
  • 微服务学习|初识elasticsearch、操作索引库、文档操作、RestClient操作索引库、RestClient操作文档

    elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack (ELK)。被广泛应用在日志数据分析、实时监控等领域 elasticsearch是elastic stack的核心,负责存储、搜索、分析数据 Lucene是一个jav

    2024年01月18日
    浏览(47)
  • Elasticsearch(五)--ES文档的操作(上)---写入文档

    使用ES构建搜索引擎时需要经常对文档进行操作,除了简单的单条文档操作,有时还需要进行批量操作。我们这章主要学习ES文档的增删改的操作,由于涉及到的代码量会比较多,所以分为3篇文章分别说明文档的这个三个操作。那么我们对文档操作的学习除了在kibana客户端之

    2024年01月16日
    浏览(44)
  • Elasticsearch(七)--ES文档的操作(下)---删除文档

    上篇文章我们了解了ES的修改文档的操作,也同样分别通过ES的kibana客户端以及Java高级Rest客户端进行学习,那么本篇末尾要给大家介绍的是对文档的删除操作,同新修改文档,也有删除单条文档和批量删除文档操作,根据条件删除文档,我们本篇均会涉及到。 在ES中删除文档

    2023年04月12日
    浏览(34)
  • Elasticsearch(六)--ES文档的操作(中)---修改文档

    上篇文章我们了解了ES的插入和批量插入文档的操作,分别通过ES的kibana客户端以及Java高级Rest客户端进行学习,那么本篇则进入到对文档的修改操作,同新增文档,也有更新单条文档和批量更新文档操作,但还多出一个根据条件更新文档,我们本篇均会涉及到。 在ES中更新索

    2024年02月05日
    浏览(44)
  • Elasticsearch各种高级文档操作

    本文来记录下Elasticsearch各种文档操作 在进行各种文档操作之前,我们先进行初始化文档数据的工作 在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为: 请求提参数解释 参数 解释 query 代表一个查询对象,里面可以有不同的查询属性 match_all 查

    2024年01月21日
    浏览(30)
  • Elasticsearch——文档操作

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

    2023年04月12日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包