当前位置: 首页 > 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索引,具有灵活性和易用性。在实际应用中,需要根据数据模型和查询需求来选择合适的方式来上传和查询数据。

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

相关文章:

  • R语言初学者书籍推荐
  • Taro+Vue3,点击按钮把另一个页面分享出去
  • CSS基础:学习CSS样式的基本语法和应用,了解如何美化网页。
  • MySQL语句总和之表数据操作(增删改查)
  • HDFS中snapshot快照机制
  • YOLOv5基础知识入门(5)— 损失函数(IoU、GIoU、DIoU、CIoU和EIoU)
  • Centos7源码安装redis
  • [静态时序分析简明教程(九)]多周期路径set_multicycle_path
  • Unity学习笔记--使用 C# 开发一个 LRU
  • 【一】初步认识数据库
  • HTML <section> 标签
  • PHP 之房贷计算器、组合贷
  • 解决Vue+Element UI使用表单rules国际化时From表单验证信息不能实时更新
  • 友善之臂NanoPi NEO利用fbtft驱动点亮1.69寸ST7789V2屏幕
  • MFC第三十天 通过CToolBar类开发文字工具栏和工具箱、GDI+边框填充以及基本图形的绘制方法、图形绘制过程的反色线模型和实色模型
  • Android Https
  • Games101学习笔记2
  • java字符串String类的常用方法
  • 自动化测试如何解决chrome自动更新问题
  • 闲鱼卖货:新手容易踩坑的7个地方。赶紧看看有没有中招?
  • PowerShell 获取某目录下所有的文件、文件夹,同时对获取到的文件路径字符串进行替换处理
  • JUC并发编程之线程锁(一)
  • Android AlertDialog标题居中
  • k8s界面化平台dashboard、kubesphere、Rancher对比
  • 【字符串左旋】
  • Docker Dirtypipe(CVE-2022-0847)漏洞复现与分析容器逃逸
  • python接口自动化测试框架2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等
  • Vue.js2+Cesium1.103.0 九、淹没分析效果
  • SpringBoot案例-部门管理-新增
  • 微信小程序中背景图片如何占满整个屏幕,拉伸