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

wordpress 上传文件功能太原seo

wordpress 上传文件功能,太原seo,沃尔玛跨境电商平台,100个简单的手工小玩具作者:来自 Elastic piotrprz 在创建应该使用 Elasticsearch 进行搜索、数据聚合或 BM25/vector/search 的软件时,创建至少少量的集成测试至关重要。虽然 “模拟索引” 看起来很诱人,因为测试甚至可以在几分之一秒内运行,但它们实际…

作者:来自 Elastic piotrprz

在创建应该使用 Elasticsearch 进行搜索、数据聚合或 BM25/vector/search 的软件时,创建至少少量的集成测试至关重要。虽然 “模拟索引” 看起来很诱人,因为测试甚至可以在几分之一秒内运行,但它们实际测试的不是与真实 Elasticsearch 的交互,而是我们对 Elasticsearch 的想象。这可能会在生产中得到严格的验证,特别是在集群更新之后 :wink:

为了减轻集成测试最明显的缺点,至关重要的是使用数据初始化 Elasticsearch,这种方式对于日常生产场景来说可能不是最佳的,但对于测试设置来说却非常有效。

更多有关测试的文章:

  • 使用真实 Elasticsearch 进行更快的集成测试

  • 使用模拟和真实的 Elasticsearch 来测试你的 Java 代码

不要重新创建容器

依赖 Elasticsearch 测试你的功能可能只需要很少的时间,比如几分之一秒。那么在测试之间重新启动 Elasticsearch 并不是一个明智的想法,因为你将额外花费几十秒钟来等待 ES 启动。

只需在测试之前启动一次 Elasticsearch,在每次测试后进行清理,并在每次测试之前初始化数据。

提示:如果您在 Java 等语言中使用 Elasticsearch 的 Testcontainers 模块,请确保该字段是 @Container static 或至少在 @BeforeAll 中启动。

测试之前,cURL 是你的好朋友

在生产代码(我们正在测试)中使用客户端库是一个明智的选择。然而,在准备测试环境时,采用更为复杂的方法可能会有好处,因为生产用例和测试数据设置的需求并不 100% 相同。使用 cURL 管理 Elasticsearch 中的数据并不是什么难事,正如我们在之前的文章中看到的那样:如何使用 cURL Elasticsearch:进入 Shell。

另一个好处是 cURL 与编程语言无关,因此来自不同技术栈的人可以更容易理解测试。
从 Testcontainers 使用 cURL 并不比 Bash 困难多少,例如,如果你需要删除书籍索引,可以这样做:

elasticsearch.execInContainer("curl", "https://localhost:9200/books", "-u", "elastic:changeme","--cacert", "/usr/share/elasticsearch/config/certs/http_ca.crt","-X", "DELETE"
)

尽可能批量

在很多情况下,索引单个文档是有意义的,但加载测试数据不是其中之一。无需发出 1000 个请求来索引每个文档,只需运行一个包含 1000 个文档的 _bulk 请求即可。即使使用测试容器也不是什么难事:

elasticsearch.execInContainer("curl", "https://localhost:9200/_bulk?refresh=true", "-u", "elastic:changeme","--cacert", "/usr/share/elasticsearch/config/certs/http_ca.crt","-X", "POST","-H", "Content-Type: application/x-ndjson","--data-binary", "@/tmp/books.ndjson"
)

通过这种方法,您甚至可以在一次调用中将文档添加到许多线索中!

尽量本地化

CPU缓存比内存快得多,本地存储通常比网络快。如果你有十个用例都依赖同一份数据集,那就没有必要每次都把同样的数据发送到同一个容器里(毕竟我们不会每次测试都创建新容器,对吧?)

因此,在创建容器时,加上 .withCopyToContainer(...),这样你就可以把文件一次性复制到容器,然后像上面那样直接用 _bulk 处理。这大概是这样的:

static ElasticsearchContainer elasticsearch =new ElasticsearchContainer(ELASTICSEARCH_IMAGE).withCopyToContainer(MountableFile.forHostPath("src/test/resources/books.ndjson"), "/tmp/books.ndjson");

这在设置(如 CI)中尤其有意义,其中容器运行时不是本地的,而是从不同的机器注入的。

回顾

这里提出的想法提醒我们,永恒的 IT 口头禅 “不要重复自己” 也适用于初始化测试数据。将数据批量保存在本地,这样你就可以节省执行集成测试所需的大量时间。欲了解更多见解,请随意探索 Github repo,其中包含更多示例和分支。

原文:Dec 8th, 2024: [EN] DOs and DON'Ts when initializing data for integration tests with Elasticsearch - Advent Calendar - Discuss the Elastic Stack


文章转载自:

http://hwWwyizG.mkxxk.cn
http://JsRIzHds.mkxxk.cn
http://9chy2rJO.mkxxk.cn
http://TouGI5Wa.mkxxk.cn
http://CWDuZZTb.mkxxk.cn
http://pU3BGAfD.mkxxk.cn
http://PjdtN8r4.mkxxk.cn
http://BivwsYqC.mkxxk.cn
http://6s3Le3Pq.mkxxk.cn
http://cING7UL0.mkxxk.cn
http://hsIjSe1I.mkxxk.cn
http://Ouzv0p2m.mkxxk.cn
http://8YQtSLk7.mkxxk.cn
http://zb9kkOa2.mkxxk.cn
http://r7uUm0ID.mkxxk.cn
http://4TNjCvmt.mkxxk.cn
http://8fLMsyW9.mkxxk.cn
http://C8V2khP6.mkxxk.cn
http://GCxWxPWG.mkxxk.cn
http://YDtKA32a.mkxxk.cn
http://Anlr2nDx.mkxxk.cn
http://AE03lvxN.mkxxk.cn
http://MUGqSSZu.mkxxk.cn
http://mcqXRJVP.mkxxk.cn
http://jGJ5B6Hs.mkxxk.cn
http://L8549RgD.mkxxk.cn
http://glL1WPGp.mkxxk.cn
http://I4Uijf7S.mkxxk.cn
http://1YIk0YQ6.mkxxk.cn
http://zCv0jo5B.mkxxk.cn
http://www.dtcms.com/wzjs/731329.html

相关文章:

  • 网页设计与网站建设的概述做美团网站多少钱
  • 私做网站名电子章织梦者网站模板
  • 帮助网站源码泰安网络公司哪里找
  • dedecms 网站地图插件阿里云 wordpress 博客
  • 易云巢做网站公司广州机械加工
  • 网站h1标签用在哪里oa系统费用报销流程
  • 南京企业网站开发上海做宴会的网站
  • 网站收录系统好用建站模板
  • 建设网站怎样挣钱电脑怎做单页网站
  • 素马杭州网站设计介绍上海市工商局企业查询
  • 鞍山+网站建设js网站统计代码
  • 查企业网站高端网站建设搭建
  • 网站策划书格式外包app
  • 做公司网站的资料代理记账公司怎么找客源
  • 怎样建设网站网站建站软件排名
  • 台州网站设计公司网站成都专业做游戏网站
  • 线上网站怎么做wordpress搭建服务器
  • 桂林龙胜网站建设百度推广长春分公司
  • 做网站怎样产生效益淮南哪里做网站
  • 郑州网站个人开发wordpress video插件
  • 深圳网站设计兴田德润优惠吗网络公司经营范围可以加技术培训
  • 海珠企业网站建设合肥做网站公司有哪些
  • 网站用户粘度怎么制作网站详细教程视频
  • 济南济南网站建设dw网页设计下载
  • 礼品做便宜的网站山东聚搜网络科技有限公司
  • 网站如何防止黑客攻击电子商务网站后台
  • 个人业务网站建设网站流量不正常
  • 给会所做网站明年房价走势最新消息
  • 网站项目中的工作流程erp软件公司有哪些
  • 优质ppt网站wordpress vip会员系统