【Elasticsearch】 03-索引创建/更新/删除详解及示例

这篇具有很好参考价值的文章主要介绍了【Elasticsearch】 03-索引创建/更新/删除详解及示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 简介

Elasticsearch 是一个开源的分布式搜索和分析引擎,提供了强大的全文搜索、实时数据分析和数据可视化功能。本文将详细介绍 Elasticsearch 的新增语法,包括索引的创建、数据的插入、更新和删除等操作,并提供丰富的示例代码,帮助您更好地理解和使用 Elasticsearch。

2. 安装 Elasticsearch

在开始之前,需要先安装和配置 Elasticsearch。您可以从 Elasticsearch 官方网站下载适合您操作系统的版本,并按照官方文档进行安装和配置。

3. 创建索引

在 Elasticsearch 中,索引类似于数据库中的表,用于组织和存储数据。以下是创建索引的示例代码:

CreateIndexRequest request = new CreateIndexRequest("my_index");
request.settings(Settings.builder()
                .put("index.number_of_shards", 3)
                .put("index.number_of_replicas", 2)
            );
request.mapping("_doc",
                "{\n" +
                "  \"properties\": {\n" +
                "    \"title\": {\n" +
                "      \"type\": \"text\"\n" +
                "    },\n" +
                "    \"content\": {\n" +
                "      \"type\": \"text\"\n" +
                "    }\n" +
                "  }\n" +
                "}"
            );
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);

4. 插入数据

使用 Elasticsearch 的 Java 客户端,可以将数据插入到索引中。以下是插入数据的示例代码:

IndexRequest request = new IndexRequest("my_index");
request.id("1");
request.source("title", "Elasticsearch Introduction", "content", "Elasticsearch is a distributed search and analytics engine.");

IndexResponse response = client.index(request, RequestOptions.DEFAULT);

5. 更新数据

使用 Elasticsearch 的 Update API,可以更新索引中的文档。以下是更新数据的示例代码:

UpdateRequest request = new UpdateRequest("my_index", "1");
request.doc("title", "Updated Title");

UpdateResponse response = client.update(request, RequestOptions.DEFAULT);

6. 删除数据

使用 Elasticsearch 的 Delete API,可以从索引中删除文档。以下是删除数据的示例代码:

DeleteRequest request = new DeleteRequest("my_index", "1");

DeleteResponse response

 = client.delete(request, RequestOptions.DEFAULT);

7. 注意事项与避坑指南

7.1 映射定义与字段类型

在创建索引时,要根据实际需求定义映射和字段类型。确保字段的类型与实际数据的类型匹配,避免数据错误或搜索不准确。

7.2 分词器与全文搜索

Elasticsearch 使用分词器对文本进行分词处理,以支持全文搜索功能。要根据实际需求选择合适的分词器,确保搜索结果准确匹配。

7.3 性能优化

在大规模数据存储和搜索时,需要考虑性能优化。合理设置分片和副本数量、使用索引别名和优化查询等方法,可以提高 Elasticsearch 的性能。

7.4 数据备份与恢复

定期进行数据备份,确保数据的安全性。在需要恢复数据时,可以使用 Elasticsearch 的快照和恢复功能进行数据恢复。

8. 示例代码

8.1 创建索引与插入数据

示例代码展示了如何创建索引并插入数据到 Elasticsearch:

// 创建索引
CreateIndexRequest request = new CreateIndexRequest("my_index");
// 设置索引配置
request.settings(Settings.builder()
                .put("index.number_of_shards", 3)
                .put("index.number_of_replicas", 2)
            );
// 定义映射
request.mapping("_doc",
                "{\n" +
                "  \"properties\": {\n" +
                "    \"title\": {\n" +
                "      \"type\": \"text\"\n" +
                "    },\n" +
                "    \"content\": {\n" +
                "      \"type\": \"text\"\n" +
                "    }\n" +
                "  }\n" +
                "}"
            );
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);

// 插入数据
IndexRequest request = new IndexRequest("my_index");
request.id("1");
request.source("title", "Elasticsearch Introduction", "content", "Elasticsearch is a distributed search and analytics engine.");

IndexResponse response = client.index(request, RequestOptions.DEFAULT);

8.2 更新数据

示例代码展示了如何使用 Update API 更新数据:

UpdateRequest request = new UpdateRequest("my_index", "1");
request.doc("title", "Updated Title");

UpdateResponse response = client.update(request, RequestOptions.DEFAULT);

8.3 删除数据

示例代码展示了如何使用 Delete API 删除数据:

DeleteRequest request = new DeleteRequest("my_index", "1");

DeleteResponse response = client.delete(request, RequestOptions.DEFAULT);

9. 结论

本文详细介绍了 Elasticsearch 的新增语法,包括索引的创建、数据的插入、更新和删除等操作。示例代码帮助读者更好地理解和使用 Elasticsearch。在实际使用中,请根据实际需求合理配置映射、字段类型和分词器,注意性能优化和数据备份,以充分发挥 Elasticsearch 的功能和性能。文章来源地址https://www.toymoban.com/news/detail-766959.html

10. 参考链接

  • Elasticsearch 官方网站: https://www.elastic.co/
  • Elasticsearch Java 客户端文档: https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html

到了这里,关于【Elasticsearch】 03-索引创建/更新/删除详解及示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Elasticsearch介绍及其索引库的创建删除和重新绑定

    Elasticsearch是一个开源的分布式搜索和分析引擎,基于Apache Lucene构建。它提供了一个快速、实时的搜索和分析功能,适用于各种用例,包括全文搜索、日志和指标分析、安全事件检测等。 主要特点包括: 分布式架构 :Elasticsearch采用分布式架构,可以水平扩展以处理大量数据

    2024年04月12日
    浏览(42)
  • Elasticsearch中别名alias相关操作(创建、更新、删除)

            在Elasticsearch中,别名(alias)是一种将一个或多个索引(index)映射到一个逻辑名称上的方式。通过使用别名,我们可以为目标索引提供简洁、易于理解的名称,并将多个索引组合到一个别名下。         例如,假设我们有两个索引分别存储了不同时间段的日

    2023年04月20日
    浏览(78)
  • 使用python在es中基本操作详解(添加索引、查询索引、删除索引、判断索引是否存在、添加数据、更新数据、查询数据)

    示例代码1: 运行结果: 示例代码2: 运行结果: 示例代码3: 运行结果: 注意: 对比上面几种建立索引的方法,是有一定区别的。根据响应结果可以看出: es. indices.create() 方法是标准的创建索引的方法,其它几种方法在创建索引的同时也会生成一条数据,并且生成mappin

    2024年02月11日
    浏览(196)
  • ElasticSearch7.3学习(十六)----RestHighLevelClient Java api实现索引的创建、删除、是否存在、关闭、开启

    注意:导入的包区别,不同的包创建索引的方式不同。博主亲身实践,具体体现在createIndexRequest.mapping()里面。读者可自行试验。  由此可以猜想一下: 可以看到上述两种方式导入的包的子类名是相同的,但是具体对索引的操作方式可能是不同的。具体的区别博主暂时还不清

    2024年02月16日
    浏览(58)
  • Elastic Search 命令详解-索引操作

    关于Elastic Search安装可以参考《Elastic Search 8.6.2集群安装部署》及Kibana安装可以参考《Elastic Search 8.6.2简单操作》。相关命令将在Kibana工具的Console平台上执行。 Elastic Search索引操作主要包含:创建、删除、关闭和打开索引,以及索引别名的操作。其中,索引别名的操作在生产环

    2024年02月08日
    浏览(45)
  • 【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)

    目录 一、前言 二、实验环境 三、Python容器(Containers) 0、容器介绍 1、列表(List) 1. 初始化 a. 创建空列表 b. 使用现有元素初始化列表 c. 使用列表生成式 d. 复制列表 2. 索引和切片 a. 索引 b. 负数索引 c. 切片 3. 常用操作(更新、删除) a. 更新单个元素 b. 更新切片 c. 删除单

    2024年02月09日
    浏览(53)
  • [elastic 8.x]java客户端连接elasticsearch与操作索引与文档

    为了方便演示,我关闭了elasticsearch的安全验证,带安全验证的初始化方式将在最后专门介绍 其中,HotelDoc是一个实体类 带安全验证的连接有点复杂,将下列代码中CA证书的位置改为实际所在的位置就行了。 password为elastic的密码,可以在我的另一篇文章中查看密码的重置方式

    2024年04月11日
    浏览(49)
  • Elasticsearch:在 Java 客户端应用中管理索引 - Elastic Stack 8.x

    管理索引是客户端应用常用的一些动作,比如我们创建,删除,打开 及关闭索引等操作。在今天的文章中,我将描述如何在 Java 客户端应用中对索引进行管理。 我们需要阅读之前的文章 “Elasticsearch:在 Java 客户端中使用 truststore 来创建 HTTPS 连接”。在那篇文章中,我们详

    2023年04月09日
    浏览(39)
  • Elasticsearch:如何通过 3 个简单步骤从 Elastic 数据中删除个人身份信息

    作者:Peter Titov 对于任何组织来说,个人身份信息 (Personally Identifiable information, PII) 合规性都是一个日益严峻的挑战。 无论你是在电子商务、银行、医疗保健还是其他数据敏感的领域,PII 都可能会在无意中被捕获和存储。 拥有结构化日志,可以轻松快速识别、删除和保护敏

    2024年02月13日
    浏览(50)
  • ChatGPT 和 Elasticsearch:使用 Elastic 数据创建自定义 GPT

    作者:Sandra Gonzales ChatGPT Plus 订阅者现在有机会创建他们自己的定制版 ChatGPT,称为 GPT,这替代了之前博客文章中讨论的插件。基于本系列的第一部分的基础 —— 我们深入探讨了在 Elastic Cloud 中设置 Elasticsearch 数据和创建向量嵌入 —— 这篇博客将指导你完成开发一个定制的

    2024年04月26日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包