建设企业外贸网站/最近五天的新闻大事

建设企业外贸网站,最近五天的新闻大事,2023年免费域名推荐,传媒公司签约主播合同安装elasticsearch 打开cursor,输入如下提示词 使用springboot整合elasticsearch。其中elasticsearch服务器ip:192.168.236.134 管理员用户名elastic 管理员密码 PdQy_xfR2yLhpok*MK_ 监听端口9200点Accept all 使用idea打开生成的项目 &#xff0…

安装elasticsearch

在这里插入图片描述

打开cursor,输入如下提示词

使用springboot整合elasticsearch。其中elasticsearch服务器ip:192.168.236.134  
管理员用户名elastic  管理员密码 PdQy_xfR2yLhpok*MK_+  监听端口9200

在这里插入图片描述

点Accept all

在这里插入图片描述
在这里插入图片描述

使用idea打开生成的项目

(不建议使用cursor自带的调试插件,不好用,并且还要开发php、python、vue等等等等)
在这里插入图片描述

install报错,喂给cursor

在这里插入图片描述
在这里插入图片描述

构建成功

在这里插入图片描述
在这里插入图片描述

测试

在这里插入图片描述

cursor给出步骤如下:


使用 Postman 测试 SpringBoot Elasticsearch 应用

下面是使用 Postman 测试您的 SpringBoot Elasticsearch 应用的详细步骤和测试用例:

测试步骤

1. 创建索引

首先需要创建产品索引:

  • 请求方式:POST
  • URLhttp://localhost:8080/api/products/index
  • 请求体:无需请求体
  • 预期结果:返回 “索引创建成功” 或 “索引创建失败,可能已存在”

2. 添加产品

添加一个或多个产品到 Elasticsearch:

  • 请求方式:POST
  • URLhttp://localhost:8080/api/products
  • 请求头Content-Type: application/json
  • 请求体
{"id": "1","name": "iPhone 13","description": "苹果最新款手机,性能强劲","price": 6999.0,"category": "手机"
}
  • 预期结果:返回 “产品添加成功,ID: 1”

3. 获取产品

根据 ID 获取产品信息:

  • 请求方式:GET
  • URLhttp://localhost:8080/api/products/1
  • 请求体:无需请求体
  • 预期结果:返回产品的 JSON 数据

4. 更新产品

更新已存在的产品信息:

  • 请求方式:PUT
  • URLhttp://localhost:8080/api/products
  • 请求头Content-Type: application/json
  • 请求体
{"id": "1","name": "iPhone 13 Pro","description": "苹果最新款专业版手机,性能更强劲","price": 8999.0,"category": "手机"
}
  • 预期结果:返回 “产品更新成功,ID: 1”

5. 搜索产品

根据关键词搜索产品:

  • 请求方式:GET
  • URLhttp://localhost:8080/api/products/search?keyword=苹果
  • 请求体:无需请求体
  • 预期结果:返回包含关键词的产品列表

6. 删除产品

删除指定 ID 的产品:

  • 请求方式:DELETE
  • URLhttp://localhost:8080/api/products/1
  • 请求体:无需请求体
  • 预期结果:返回 “产品删除成功,ID: 1”

完整测试流程

  1. 启动您的 SpringBoot 应用
  2. 按照上述步骤依次执行测试
  3. 验证每个请求的响应是否符合预期

更多测试用例

添加多个产品

// 产品2
{"id": "2","name": "华为 Mate 50","description": "华为旗舰手机,拍照性能出色","price": 5999.0,"category": "手机"
}// 产品3
{"id": "3","name": "MacBook Pro","description": "苹果专业笔记本电脑,适合开发人员","price": 12999.0,"category": "笔记本电脑"
}// 产品4
{"id": "4","name": "iPad Pro","description": "苹果平板电脑,支持Apple Pencil","price": 6499.0,"category": "平板电脑"
}

搜索不同关键词

  • 搜索 “华为”:http://localhost:8080/api/products/search?keyword=华为
  • 搜索 “电脑”:http://localhost:8080/api/products/search?keyword=电脑
  • 搜索 “专业”:http://localhost:8080/api/products/search?keyword=专业

故障排除

如果您在测试过程中遇到问题,请检查:

  1. 应用是否正常启动,没有报错
  2. Elasticsearch 服务是否可访问(可以通过 curl -u elastic:PdQy_xfR2yLhpok*MK_+ http://192.168.236.134:9200 测试)
  3. 请求参数和格式是否正确
  4. 查看应用日志,了解可能的错误原因

希望这些测试步骤和用例对您有所帮助!如果有任何问题,请随时提问。


我们根据给出的测试步骤来试下

在这里插入图片描述

出现链接超时

在这里插入图片描述

关闭防火墙还是有问题

继续问题cursor

在这里插入图片描述

经过几轮对话,解决版本问题、密钥问题,接口调用成功

在这里插入图片描述

测试添加产品接口

在这里插入图片描述

调用获取产品接口

在这里插入图片描述

调用更新产品

在这里插入图片描述

测试成功!

对elasticsearch 还不太熟悉的小伙伴,想要快速上手elasticsearch怎么办呢?
直接让cursor给出学习手册
在这里插入图片描述

Elasticsearch 快速上手指导手册

1. 概述

你的项目是一个使用 Spring Boot 集成 Elasticsearch 的应用程序,用于产品数据的索引和搜索。从代码中可以看出,你已经有了一个完整的基础架构,包括配置、服务层和控制器。

2. Elasticsearch 基础知识

Elasticsearch 是一个分布式、RESTful 风格的搜索和分析引擎,基于 Apache Lucene 构建。它能够快速存储、搜索和分析大量数据。

核心概念

  • 索引(Index): 类似于关系型数据库中的"数据库"
  • 类型(Type): ES 7.x 后已弃用,在 8.x 中完全移除
  • 文档(Document): 类似于关系型数据库中的"行"
  • 字段(Field): 类似于关系型数据库中的"列"
  • 映射(Mapping): 定义文档及其字段如何存储和索引

3. 你的项目结构

你的项目已经配置好了以下组件:

  1. ElasticsearchConfig: 配置 Elasticsearch 客户端连接
  2. ElasticsearchService: 提供索引和文档操作的服务
  3. ProductController: REST API 控制器
  4. Product: 产品模型类

4. 使用指南

4.1 启动应用

确保 Elasticsearch 服务器已启动,然后运行你的 Spring Boot 应用:

mvn spring-boot:run

4.2 创建索引

首先需要创建索引,通过以下 API 调用:

POST http://localhost:8080/api/products/index

这将创建一个名为 “products” 的索引,包含 id、name、description、price 和 category 字段。

4.3 添加产品

POST http://localhost:8080/api/products
Content-Type: application/json{"id": "1","name": "iPhone 13","description": "Apple iPhone 13 with A15 Bionic chip","price": 799.99,"category": "electronics"
}

4.4 获取产品

GET http://localhost:8080/api/products/1

4.5 更新产品

PUT http://localhost:8080/api/products
Content-Type: application/json{"id": "1","name": "iPhone 13","description": "Apple iPhone 13 with A15 Bionic chip and improved camera","price": 749.99,"category": "electronics"
}

4.6 搜索产品

GET http://localhost:8080/api/products/search?keyword=iPhone

4.7 删除产品

DELETE http://localhost:8080/api/products/1

5. 代码解析

5.1 ElasticsearchConfig

这个类配置了 Elasticsearch 客户端连接,包括:

  • 主机、端口、用户名和密码
  • SSL 配置(信任所有证书)
  • 连接和超时设置

5.2 ElasticsearchService

提供了以下功能:

  • 创建索引和检查索引是否存在
  • 添加、获取、更新和删除文档
  • 搜索文档

5.3 ProductController

提供 RESTful API 端点,调用 ElasticsearchService 的方法。

6. 常见操作示例

6.1 复杂搜索

你可以扩展 searchProducts 方法来支持更复杂的搜索:

public List<Product> searchProductsAdvanced(String keyword, String category, Double minPrice, Double maxPrice) throws IOException {SearchResponse<Product> response = client.search(s -> {s.index(INDEX);// 构建布尔查询BoolQuery.Builder boolQuery = new BoolQuery.Builder();// 关键字搜索if (keyword != null && !keyword.isEmpty()) {boolQuery.must(q -> q.multiMatch(m -> m.query(keyword).fields("name", "description")));}// 分类过滤if (category != null && !category.isEmpty()) {boolQuery.filter(f -> f.term(t -> t.field("category").value(category)));}// 价格范围过滤if (minPrice != null || maxPrice != null) {RangeQuery.Builder rangeQuery = new RangeQuery.Builder().field("price");if (minPrice != null) {rangeQuery.gte(JsonData.of(minPrice));}if (maxPrice != null) {rangeQuery.lte(JsonData.of(maxPrice));}boolQuery.filter(f -> f.range(rangeQuery.build()));}return s.query(q -> q.bool(boolQuery.build()));}, Product.class);List<Product> products = new ArrayList<>();for (Hit<Product> hit : response.hits().hits()) {products.add(hit.source());}return products;
}

6.2 聚合查询

添加一个方法来获取每个分类的产品数量:

public Map<String, Long> getProductCountByCategory() throws IOException {SearchResponse<Void> response = client.search(s -> s.index(INDEX).size(0)  // 不需要返回文档,只需要聚合结果.aggregations("categories", a -> a.terms(t -> t.field("category").size(100)  // 返回最多100个分类)),Void.class);Map<String, Long> result = new HashMap<>();List<StringTermsBucket> buckets = response.aggregations().get("categories").sterms().buckets().array();for (StringTermsBucket bucket : buckets) {result.put(bucket.key(), bucket.docCount());}return result;
}

7. 最佳实践

  1. 批量操作: 使用 bulk API 进行批量索引、更新或删除操作
  2. 分页查询: 实现分页以处理大量结果
  3. 错误处理: 添加适当的异常处理和重试机制
  4. 索引别名: 使用索引别名进行无缝索引迁移
  5. 定期优化: 定期执行索引优化操作

8. 安全注意事项

你的配置文件中包含明文密码,建议:

  1. 使用环境变量或外部配置服务存储敏感信息
  2. 在生产环境中使用适当的证书验证,而不是信任所有证书
  3. 限制 Elasticsearch 用户的权限

9. 故障排除

常见问题:

  1. 连接问题: 检查主机、端口和凭据
  2. 映射冲突: 确保字段类型一致
  3. 查询性能: 使用分析器调整查询性能
  4. 内存问题: 监控 JVM 堆使用情况

10. 进阶主题

  1. 集群设置: 配置多节点集群
  2. 分片和副本: 优化分片和副本策略
  3. 自定义分析器: 创建自定义分析器以改进搜索
  4. 地理空间搜索: 实现地理位置搜索功能
  5. 向量搜索: 实现向量搜索和相似度查询

通过这个指南,你应该能够开始使用你的 Elasticsearch 应用程序,并了解如何扩展它的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/73329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 项目的最新eslint9 + prettier 配置

注意&#xff1a;eslint目前升级到9版本了 在 ESLint v9 中&#xff0c;配置文件已经从 .eslintrc 迁移到了 eslint.config.js 配置的方式和之前的方式不太一样了&#xff01;&#xff01;&#xff01;&#xff01; 详见自己的语雀文档&#xff1a;5、新版eslint9prettier 配…

基于FPGA的16QAM+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 16QAM调制解调原理 2.2 帧同步 3.Verilog核心程序 4.完整算法代码文件获得 1.算法仿真效果 vivado2019.2仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&#xff1a; 设置SNR12db 将FPGA数据导入到MATLAB显…

[学成在线]06-视频分片上传

上传视频 需求分析 教学机构人员进入媒资管理列表查询自己上传的媒资文件。 点击“媒资管理” 进入媒资管理列表页面查询本机构上传的媒资文件。 教育机构用户在"媒资管理"页面中点击 "上传视频" 按钮。 点击“上传视频”打开上传页面 选择要上传的文件…

Maven安装与环境配置

首先我们先介绍一些关于Maven的知识&#xff0c;如果着急直接看下面的安装教程。 目录 Maven介绍 Maven模型 Maven仓库 Maven安装 下载 安装步骤 Maven介绍 Apache Maven是一个项目管理和构建工具&#xff0c;它基于项目对象模型(Project Object Model , 简称: POM)的概念…

AI Tokenization

AI Tokenization 人工智能分词初步了解 类似现在这个&#xff0c;一格子 一格子&#xff0c;拼接出来的&#xff0c;一行或者一句&#xff0c;像不像&#xff0c;我们人类思考的时候组装出来的话&#xff0c;并用嘴说出来了呢。

React(四)setState原理-性能优化-ref

setState详解 实现原理 开发中我们并不能直接修改State来重新渲染界面&#xff1a; 因为修改State之后&#xff0c;希望React根据最新的State来重新渲染界面&#xff0c;但这种方式的修改React并不知道数据发生了变化&#xff1b; React并没有类似于Vue2中的Object.defineP…

SSH密钥认证 + 文件系统权限控制 + Git仓库配置+封存与解封GIT仓库

在本地服务器上实现多个用户仅通过git push操作修改仓库、禁止其他改写方式的需求&#xff0c;可以通过以下步骤实现&#xff1a; 方法概述 通过SSH密钥认证 文件系统权限控制 Git仓库配置&#xff0c;确保用户仅能通过git push命令提交修改&#xff0c;而无法通过直接操作服…

C++11中智能指针的使用(shared_ptr、unique_ptr、weak_ptr)

C11中智能指针的使用(shared_ptr、unique_ptr、weak_ptr) 一、shared_ptr原理 shared_ptr 是另一种智能指针&#xff0c;用于实现多个 shared_ptr 实例共享同一个对象的所有权。它通过内部的控制块&#xff08;通常是一个包含计数器和指向对象的指针的结构&#xff09;来管理…

2024年认证杯SPSSPRO杯数学建模B题(第二阶段)神经外科手术的定位与导航全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 B题 神经外科手术的定位与导航 原题再现&#xff1a; 人的大脑结构非常复杂&#xff0c;内部交织密布着神经和血管&#xff0c;所以在大脑内做手术具有非常高的精细和复杂程度。例如神经外科的肿瘤切除手术或血肿清除手术&#xff0c;通常需要…

尝试在软考62天前开始成为软件设计师-信息系统安全

安全属性 保密性:最小授权原则(能干活的最小权限)、防暴露(隐藏)、信息加密、物理保密完整性(防篡改):安全协议、校验码、密码校验、数字签名、公证 可用性:综合保障( IP过滤、业务流控制、路由选择控制、审计跟踪)不可抵赖性:数字签名 对称加密 DES :替换移位 3重DESAESR…

Rocky9.5基于sealos快速部署k8s集群

首先需要下载 Sealos 命令行工具&#xff0c;sealos 是一个简单的 Golang 二进制文件&#xff0c;可以安装在大多数 Linux 操作系统中。 以下是一些基本的安装要求&#xff1a; 每个集群节点应该有不同的主机名。主机名不要带下划线。 所有节点的时间需要同步。 需要在 K8s …

Cursor软件如何刷新机器码流程

一.退出Cursor软件账号 打开Cursor软件&#xff0c;点击设置-->General-->Account-->Log out,现将Cursor软件上登录的账户退出。 二.将Cursor官网上登录的Cursor账户也清空掉 点击头像--> ACCOUNT SETTINGS -->Account-->Advanced-->Delete Account-->…

类与对象(中)(详解)

【本节目标】 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 5. 赋值运算符重载 6. const成员函数 7. 取地址及const取地址操作符重载 1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&…

React+Ant Design的Layout布局实现暗黑模式切换

目录 效果预览完整代码我遇到的BUG问题代码BUG1&#xff1a;暗黑模式下内容区不变成深色BUG2&#xff1a;光亮模式下的左右区域是深色 补充知识ConfigProvider是什么&#xff1f;Ant Design中的theme如何使用&#xff1f;theme 配置的常见字段主题算法通过 useToken 获取主题 效…

力扣DAY24 | 热100 | 回文链表

前言 简单 √ 是反转链表的衍生题&#xff0c;很快写完了。不过没考虑到恢复链表结构的问题。 题目 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输…

【GL010】C++

1.C中的const关键字有哪些用法&#xff1f; 1.修饰变量&#xff1a;表示变量的值不可修改。 const int a 10; 2.修饰指针&#xff1a; const int* p&#xff1a; // 指针指向的内容不可修改。 int* const p&#xff1a; // 指针本身不可修改。 const int* const…

金融行业 UE/UI 设计:解锁高效体验,重塑行业界面

在数字化浪潮中&#xff0c;金融行业的竞争日益激烈&#xff0c;用户体验&#xff08;UE&#xff09;和用户界面&#xff08;UI&#xff09;设计成为企业脱颖而出的关键。兰亭妙微凭借丰富的经验和创新的方法&#xff0c;为金融行业打造了一套行之有效的 UE/UI 解决方案&#x…

C语言字符函数,字符串函数以及内存函数

那么博主写这一片博客的目的就是为下一篇c的string类做铺垫&#xff0c;那么下面就请期待博主的下一篇文章吧。 目录 1.字符函数 2.字符串函数&#xff08;均在string.h头文件中&#xff09; strlen的使用和模拟实现 strcpy 的使用和模拟实现 strcat 的使用和模拟实现 s…

【Linux】同步原理剖析及模拟BlockQueue生产消费模型

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…

<数据集>轨道异物识别数据集<目标检测>

数据集下载链接&#xff1a;https://download.csdn.net/download/qq_53332949/90527370 数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1659张 标注数量(xml文件个数)&#xff1a;1659 标注数量(txt文件个数)&#xff1a;1659 标注类别数&#xff1a;6 标注类别…