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

在生产环境中部署Elasticsearch:最佳实践和故障排除技巧———索引与数据上传(二)

前言

在这里插入图片描述
「作者主页」:雪碧有白泡泡
「个人网站」:雪碧的个人网站
「推荐专栏」

java一站式服务
React从入门到精通
前端炫酷代码分享
★ 从0到英雄,vue成神之路★
uniapp-从构建到提升
从0到英雄,vue成神之路
解决算法,一个专栏就够了
架构咱们从0说
★ 数据流通的精妙之道★
★后端进阶之路★

请添加图片描述

文章目录

  • 前言
  • 索引管理
    • 创建索引
      • 1. 使用Java API创建索引
      • 2. 使用CURL命令创建索引
    • 更新索引
      • 1. 使用Java API更新索引设置
      • 2. 使用CURL命令更新索引设置
    • 删除索引
      • 1. 使用Java API删除索引
      • 2. 使用CURL命令删除索引
    • 映射字段类型和分析器
    • 结论
  • 数据上传和查询
    • 将数据上传到Elasticsearch
      • 1. 使用Java API上传数据
      • 2. 使用CURL命令上传数据
    • 搜索和过滤数据
      • 1. 使用Java API搜索和过滤数据
      • 2. 使用CURL命令搜索和过滤数据
    • 结论

在这里插入图片描述

索引管理

索引是Elasticsearch中最核心的概念之一。它是一种类似于数据库中表的数据结构,用于存储和搜索文档。本文将介绍如何创建、更新、删除和维护Elasticsearch索引,并学习如何映射字段类型和分析器。

创建索引

1. 使用Java API创建索引

可以使用Java API创建一个新的索引。以下是创建名为my_index的索引的代码示例:

RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));CreateIndexRequest request = new CreateIndexRequest("my_index");
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);

以上代码使用RestHighLevelClient对象创建一个名为my_index的索引。

2. 使用CURL命令创建索引

也可以通过CURL命令直接在Elasticsearch中创建索引。以下是使用CURL命令创建名为my_index的索引的示例:

curl -XPUT 'localhost:9200/my_index?pretty'

更新索引

1. 使用Java API更新索引设置

可以使用Java API更新现有索引的设置。以下是将名为my_index的索引的副本数从1更改为2的代码示例:

UpdateSettingsRequest request = new UpdateSettingsRequest("my_index");
request.settings(Settings.builder().put("index.number_of_replicas", 2));
AcknowledgedResponse response = client.indices().putSettings(request, RequestOptions.DEFAULT);

以上代码使用UpdateSettingsRequest对象将my_index索引的副本数更改为2。

2. 使用CURL命令更新索引设置

可以使用CURL命令更新现有索引的设置。以下是将名为my_index的索引的副本数从1更改为2的示例:

curl -XPUT 'localhost:9200/my_index/_settings?pretty' -H 'Content-Type: application/json' -d'
{"index" : {"number_of_replicas" : 2}
}
'

删除索引

1. 使用Java API删除索引

可以使用Java API删除现有索引。以下是删除名为my_index的索引的代码示例:

DeleteIndexRequest request = new DeleteIndexRequest("my_index");
AcknowledgeResponse response = client.indices().delete(request, RequestOptions.DEFAULT);

以上代码使用DeleteIndexRequest对象删除名为my_index的索引。

2. 使用CURL命令删除索引

可以使用CURL命令删除现有索引。以下是删除名为my_index的索引的示例:

curl -XDELETE 'localhost:9200/my_index?pretty'

映射字段类型和分析器

在创建索引时,需要映射字段类型和分析器。字段类型定义了字段值的类型,例如字符串、数字和日期等。分析器定义了将文本转换为词项的规则。以下是创建一个包含标题和内容字段的索引,并将这两个字段映射为text类型的示例:

CreateIndexRequest request = new CreateIndexRequest("my_index");
request.mapping("properties", "title", "type=text","analyzer=standard","fields=keyword","content", "type=text","analyzer=english");
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);

以上代码使用CreateIndexRequest对象创建名为my_index的索引,并将其映射为包含title和content字段的text类型。

结论

本文介绍了如何创建、更新和删除Elasticsearch索引,以及如何映射字段类型和分析器。在创建索引时,需要考虑字段类型和分析器,以便提高搜索效率。可以使用Java API或CURL命令来管理Elasticsearch索引。

数据上传和查询

将数据上传到Elasticsearch索引中并执行各种查询是使用Elasticsearch的核心功能之一。本文将介绍如何将数据上传到Elasticsearch索引中,并使用各种查询来检索和过滤数据。

将数据上传到Elasticsearch

1. 使用Java API上传数据

可以使用Java API将数据上传到Elasticsearch索引中。以下是使用RestHighLevelClient对象将一条文档上传到名为my_index的索引中的代码示例:

IndexRequest request = new IndexRequest("my_index");
request.id("1");
String jsonString = "{" +"\"name\":\"John\"," +"\"age\":30," +"\"city\":\"New York\"" +"}";
request.source(jsonString, XContentType.JSON);
IndexResponse response = client.index(request, RequestOptions.DEFAULT);

以上代码使用IndexRequest对象将一个名为John、年龄为30岁、来自纽约的文档上传到名为my_index的索引中。

2. 使用CURL命令上传数据

也可以使用CURL命令将数据上传到Elasticsearch索引中。以下是将一条名为John、年龄为30岁、来自纽约的文档上传到名为my_index的索引中的示例:

curl -XPOST 'localhost:9200/my_index/_doc/1?pretty' -H 'Content-Type: application/json' -d'
{"name": "John","age": 30,"city": "New York"
}
'

搜索和过滤数据

1. 使用Java API搜索和过滤数据

可以使用Java API搜索和过滤Elasticsearch索引中的数据。以下是使用RestHighLevelClient对象执行一个简单的match_all查询的代码示例:

SearchRequest request = new SearchRequest("my_index");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchAllQuery());
request.source(sourceBuilder);
SearchResponse response = client.search(request, RequestOptions.DEFAULT);

以上代码使用SearchRequest对象和SearchSourceBuilder对象执行简单的match_all查询,并返回所有文档。

2. 使用CURL命令搜索和过滤数据

也可以使用CURL命令搜索和过滤Elasticsearch索引中的数据。以下是使用match_all查询检索名为my_index的索引中的所有文档的示例:

curl -XGET 'localhost:9200/my_index/_search?pretty' -H 'Content-Type: application/json' -d'
{"query": {"match_all": {}}
}
'

结论

本文介绍了如何将数据上传到Elasticsearch索引中,并使用各种查询来检索和过滤数据。使用Java API或CURL命令都可以管理Elasticsearch索引,具有灵活性和易用性。在实际应用中,需要根据数据模型和查询需求来选择合适的方式来上传和查询数据。

相关文章:

在生产环境中部署Elasticsearch:最佳实践和故障排除技巧———索引与数据上传(二)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…...

R语言初学者书籍推荐

Home | Bookdown 这个网站上有很多R语言的书籍,并且一直在更新,阅读起来没有难度。 今天搜索材料的时候,检索到下面这本书: 有输入,才会有输出。...

Taro+Vue3,点击按钮把另一个页面分享出去

useShareAppMessage​ 监听用户点击页面内转发按钮(Button 组件 openTypeshare)或右上角菜单“转发”按钮的行为,并自定义转发内容。等同于 onShareAppMessage 页面生命周期钩子。 使用时,必须为页面配置 enableShareAppMessage…...

CSS基础:学习CSS样式的基本语法和应用,了解如何美化网页。

CSS(层叠样式表)是一种用于描述网页上元素(例如文字、图像、背景等)外观和布局的样式语言。通过使用CSS,您可以控制和改变网页的外观,使其更具吸引力和易于使用。 下面是一些CSS基础知识和常用的语法&#…...

MySQL语句总和之表数据操作(增删改查)

目录 1、增加 insert into 表 (字段1, 字段3, 字段5) values(value1, value2, value3) insert into 表 [(字段1, 字段2, 字段3....)] values(value1, value2,value3.....)[,(value1, value2, value3....) .....] i…...

HDFS中snapshot快照机制

HDFS中snapshot快照机制 介绍作用功能实现相关命令和操作相关命令 介绍 snapshot是数据存储的某一时刻的状态记录,备份(backup)则是数据存储的某一个时刻的副本HDFS snapshot快照是整个文件系统或某个目录在某个时刻的镜像,该镜像…...

YOLOv5基础知识入门(5)— 损失函数(IoU、GIoU、DIoU、CIoU和EIoU)

前言:Hello大家好,我是小哥谈。使用YOLOv5训练模型阶段,需要用到损失函数。损失函数是用来衡量模型预测值和真实值不一样的程度,极大程度上决定了模型的性能。本节就给大家介绍IoU系列损失函数,希望大家学习之后能够有…...

Centos7源码安装redis

1、下载redis Index of /releases/ 2、解压redis tar -xvf redis-6.2.9.tar.gz 3、进入解压后的目录 cd redis-6.2.9/4、指定内存分配器为 libc make MALLOClibc 5、进入src目录,安装 cd src && make install6、运行 ./redis-server 7、添加开机…...

[静态时序分析简明教程(九)]多周期路径set_multicycle_path

静态时序分析简明教程-多周期路径 一、写在前面1.1 快速导航链接 二、多周期路径2.1 多周期路径的SDC命令2.2 路径常规约束2.3 建立/保持规格2.4 位移量2.5 多时钟周期案例 三、总结 一、写在前面 一个数字芯片工程师的核心竞争力是什么?不同的工程师可能给出不同的…...

Unity学习笔记--使用 C# 开发一个 LRU

目录 什么是 LRULRU 核心思想代码实现一:双向链表 哈希表分析代码实现二:OrderedDictionary分析项目案例预告结尾 什么是 LRU 在计算机系统中,LRU(Least Recently Used,最近最少使用)是一种缓存置换算法。…...

【一】初步认识数据库

数据库概览数据库 缘起表(Table)的理解用表来定义数据库数据库系统的理解概念层次的理解实例层次的理解 数据库管理系统的理解从用户角度看从系统实现角度看典型的数据库管理系统 数据库语言数据库定义、操纵、控制语言数据库语言 VS 高级语言 内容回顾练习 数据库概览 走马观…...

HTML <section> 标签

实例 文档中的区段&#xff0c;解释了 PRC&#xff1a; <section><h1>PRC</h1><p>The Peoples Republic of China was born in 1949...</p> </section>定义和用法 <section> 标签定义文档中的节&#xff08;section、区段&#x…...

PHP 之房贷计算器、组合贷

一、等额本金 // &#xff08;等额本金&#xff09; //$loanAmount>贷款金额 //$loanPeriod>贷款年限 //$interestRate>贷款利息 function calculateEqualPrincipalPayment($loanAmount, $loanPeriod, $interestRate) {$monthlyPrincipal $loanAmount / ($loanPerio…...

解决Vue+Element UI使用表单rules国际化时From表单验证信息不能实时更新

说明&#xff1a;该篇博客是博主一字一码编写的&#xff0c;实属不易&#xff0c;请尊重原创&#xff0c;谢谢大家&#xff01; 博主在工作之余开始进行自动化测试平台的开发&#xff0c;虽然已经996一个月了但是还是在使劲挤时间做这件事情&#xff0c;目前平台使用前端框架vu…...

友善之臂NanoPi NEO利用fbtft驱动点亮1.69寸ST7789V2屏幕

屏幕介绍 本文以中景园1.69寸LCD&#xff0c;驱动芯片ST7789V2该款屏幕示例&#xff0c;屏幕的分辨率为240*280 屏幕引脚说明 NanoPi NEO IO介绍 屏幕与板子的IO连接关系 屏幕NanoPi NEOGNDGNDVCC3.3VSCLPC2SDAPC0RESPG11DCPA1CSPC3BLKPA0 下载交叉编译器和linux内核源码并按教…...

MFC第三十天 通过CToolBar类开发文字工具栏和工具箱、GDI+边框填充以及基本图形的绘制方法、图形绘制过程的反色线模型和实色模型

文章目录 CControlBar通过CToolBar类开发文字工具栏和工具箱CMainFrame.hCAppCMainFrm.cppCMainView.hCMainView.cppCEllipse.hCEllipse.cppCLine.hCLine.cppCRRect .hCRRect .cpp CControlBar class AFX_NOVTABLE CControlBar : public CWnd{DECLARE_DYNAMIC(CControlBar)pro…...

Android Https

本质&#xff1a;在客户端和服务端使用非对称加密协商出一套对称密钥&#xff0c;每次发送数据前加密&#xff0c;收到后解密&#xff0c;达到加密传输 http ssl 在http之下增加了安全层&#xff0c;用于保障http的加密传输 HTTPS连接 TLS连接步骤 1.客户端发送 client h…...

Games101学习笔记2

参考博客&#xff1a;GAMES101 梳理 / 个人向图形学笔记_games101笔记_river_of_sebajun的博客-CSDN博客 lecture 05 Rasterization 1(Triangles) 光栅化 把东西画在屏幕上的过程就是光栅化的过程 视口变换 为什么模型用三角形&#xff1f; 最基本的几何平面&#xff1b;保…...

java字符串String类的常用方法

java字符串String类的常用方法 字符串的创建&#xff1a; (1)定义字符串直接赋值&#xff0c;在字符串池中开辟空间() String str1“Hello”;//在字符串池中写入字符串"hello" String str2“Hello”;//直接引用字符串池中的"Hello" System.out.println(s…...

自动化测试如何解决chrome自动更新问题

问题 调试好的自动化测试脚本&#xff0c;有时候总是在第一天或过几天就不好使了。产品并未进行功能逻辑&#xff0c;ui修改&#xff0c;一切还和调试自动化脚本的时候保持一致。运行自动化测试脚本时&#xff0c;控制台总是会在driver webdriver.Chrome()这一行报错。 问题…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...