不为失败找理由,要为成功找方法。

Elastic日报 第1710期 (2023-09-26)

Elastic日报God_lockin 发表了文章 • 0 个评论 • 25 次浏览 • 4 小时前 • 来自相关话题

1. ES based 酒店预订系统的设计(三部分)(需要梯子)
https://medium.com/%40utkarsh- ... b89dd
https://blog.devops.dev/system ... 6bbff
https://blog.stackademic.com/s ... f372b
2. 围绕着 .Net core,我是怎么用ES家族搭建的日志平台的(需要梯子)
https://tohidhaghighi.medium.c ... 6b56a
3. 巅峰对决?OpenSearch VS ElasticSearch(需要梯子)
https://medium.com/%40bhongale ... e1482

编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
 

通过 Helm Chart 部署 Easysearch

经验分享liaosy 发表了文章 • 0 个评论 • 105 次浏览 • 1 天前 • 来自相关话题

bg.jpg



Easysearch 可以通过 Helm 快速部署了,快来看看吧!

Easysearch 的 Chart 仓库地址在这里 [https://helm.infinilabs.com](https://helm.infinilabs.com/)。

使用 Helm 部署 Easysearch 有两个前提条件:

  • [cert-manager](https://cert-manager.io/docs/installation/)
  • [local-path](https://github.com/rancher/local-path-provisioner)

    我们先按照 Chart 仓库的说明来快速部署一下。

    bash<br /> ~ helm repo add infinilabs <a href="https://helm.infinilabs.com" rel="nofollow" target="_blank">https://helm.infinilabs.com</a><br /> ~ cat << EOF | kubectl apply -n test -f -<br /> apiVersion: cert-manager.io/v1<br /> kind: Issuer<br /> metadata:<br /> name: easysearch-ca-issuer<br /> spec:<br /> selfSigned: {}<br /> ---<br /> apiVersion: cert-manager.io/v1<br /> kind: Certificate<br /> metadata:<br /> name: easysearch-ca-certificate<br /> spec:<br /> commonName: easysearch-ca-certificate<br /> duration: 87600h0m0s<br /> isCA: true<br /> issuerRef:<br /> kind: Issuer<br /> name: easysearch-ca-issuer<br /> privateKey:<br /> algorithm: ECDSA<br /> size: 256<br /> renewBefore: 2160h0m0s<br /> secretName: easysearch-ca-secret<br /> EOF<br /> ~ helm install easysearch infinilabs/easysearch -n test<br />

    执行上面的两个命令之后,查看一下部署情况

    bash<br /> ~ kubectl get pod -n test<br /> NAME READY STATUS RESTARTS AGE<br /> easysearch-0 1/1 Running 0 38s<br /> ~ kubectl get svc -n test<br /> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE<br /> easysearch-svc-headless ClusterIP None <none> 9200/TCP,9300/TCP 67s<br /> ~ kubectl exec -n test easysearch-0 -it -- curl -ku'admin:admin' <a href="https://localhost:9200" rel="nofollow" target="_blank">https://localhost:9200</a><br /> Defaulted container "easysearch" out of: easysearch, init-config (init)<br /> {<br /> "name" : "easysearch-0",<br /> "cluster_name" : "infinilabs",<br /> "cluster_uuid" : "JwhwwWHMQKy8l6_US7rB1A",<br /> "version" : {<br /> "distribution" : "easysearch",<br /> "number" : "1.5.0",<br /> "distributor" : "INFINI Labs",<br /> "build_hash" : "5b5b117bc43e6793e7bb0cd8bd83567a5ef35be0",<br /> "build_date" : "2023-09-07T14:55:21.232870Z",<br /> "build_snapshot" : false,<br /> "lucene_version" : "8.11.2",<br /> "minimum_wire_lucene_version" : "7.7.0",<br /> "minimum_lucene_index_compatibility_version" : "7.7.0"<br /> },<br /> "tagline" : "You Know, For Easy Search!"<br /> }<br />

    通过上面的验证,我们可以看到 Easysearch 已经部署完成,是不是很方便。

    按照 Chart 仓库的指导说明部署的是一个单节点集群,那如果要部署多节点的要怎么办呢?下面让我们来研究一下 Easysearch Chart 包的源码 [https://github.com/infinilabs/ ... earch](https://github.com/infinilabs/ ... search)。

    熟悉 Chart 包结构的小伙伴都清楚,Chart 包的变量配置一般都是在 values.yaml 文件中配置的。

    我们先来看一下默认的 [values.yaml](https://github.com/infinilabs/ ... s.yaml) 文件内容(这里只截选了一些可能需要变更的配置,完整内容请查阅源码):

  • pod 副本数以及使用资源的配置

    yaml<br /> replicaCount: 1<br /> resources:<br /> limits:<br /> cpu: 1000m<br /> memory: 2Gi<br /> requests:<br /> cpu: 1000m<br /> memory: 2Gi<br />

  • 使用存储类型以及容量的配置

    yaml<br /> storageClassName: local-path<br /> dataVolumeStorage: 100Gi<br />

  • 集群名、主节点列表以及节点角色配置

    yaml<br /> clusterName: infinilabs<br /> masterHosts: '"easysearch-0"'<br /> discoverySeedHosts: '"easysearch-0.easysearch-svc-headless"'<br /> nodeRoles: '"master","data","ingest","remote_cluster_client"'<br />

    根据研究源码的结果,多节点集群的部署只需要我们调整部署的 pod 副本数、集群名、主节点列表以及节点角色这几个配置。下面让我们来实践一下:

    1、集群规划

    集群名:es-test

    规模:3 主节点 + 3 数据节点 + 2 协调节点

    2、Chart 的版本名

    主节点:es-test-master

    数据节点:es-test-data

    协调节点:es-test-coordinate

    3、根据节点角色创建不同的 values.yaml 文件

  • es-test-master.yaml

    yaml<br /> replicaCount: 3<br /> clusterName: es-test<br /> masterHosts: '"es-test-master-easysearch-0","es-test-master-easysearch-1","es-test-master-easysearch-2"'<br /> discoverySeedHosts: '"es-test-master-easysearch-0.es-test-master-easysearch-svc-headless","es-test-master-easysearch-1.es-test-master-easysearch-svc-headless","es-test-master-easysearch-2.es-test-master-easysearch-svc-headless"'<br /> nodeRoles: '"master","ingest","remote_cluster_client"'<br />

  • es-test-data.yaml

    yaml<br /> replicaCount: 3<br /> clusterName: es-test<br /> masterHosts: '"es-test-master-easysearch-0","es-test-master-easysearch-1","es-test-master-easysearch-2"'<br /> discoverySeedHosts: '"es-test-master-easysearch-0.es-test-master-easysearch-svc-headless","es-test-master-easysearch-1.es-test-master-easysearch-svc-headless","es-test-master-easysearch-2.es-test-master-easysearch-svc-headless"'<br /> nodeRoles: '"data","ingest","remote_cluster_client"'<br />

  • es-test-coordinate.yaml

    yaml<br /> replicaCount: 2<br /> clusterName: es-test<br /> masterHosts: '"es-test-master-easysearch-0","es-test-master-easysearch-1","es-test-master-easysearch-2"'<br /> discoverySeedHosts: '"es-test-master-easysearch-0.es-test-master-easysearch-svc-headless","es-test-master-easysearch-1.es-test-master-easysearch-svc-headless","es-test-master-easysearch-2.es-test-master-easysearch-svc-headless"'<br /> nodeRoles: ""<br />

    4、使用各节点角色的配置文件部署

    bash<br /> ~ helm install es-test-master infinilabs/easysearch -n test -f es-test-master.yaml<br /> ~ helm install es-test-data infinilabs/easysearch -n test -f es-test-data.yaml<br /> ~ helm install es-test-coordinate infinilabs/easysearch -n test -f es-test-coordinate.yaml<br />

    5、验证

    bash<br /> ~ kubectl get pod -n test|grep es-test<br /> es-test-master-easysearch-0 1/1 Running 0 5m57s<br /> es-test-data-easysearch-0 1/1 Running 0 5m29s<br /> es-test-coordinate-easysearch-0 1/1 Running 0 5m10s<br /> es-test-master-easysearch-1 1/1 Running 0 4m57s<br /> es-test-data-easysearch-1 1/1 Running 0 4m29s<br /> es-test-coordinate-easysearch-1 1/1 Running 0 4m10s<br /> es-test-master-easysearch-2 1/1 Running 0 3m56s<br /> es-test-data-easysearch-2 1/1 Running 0 3m29s<br /> ~ kubectl exec -n test es-test-master-easysearch-0 -it -- curl -ku'admin:admin' <a href="https://localhost:9200/_cat/nodes?v" rel="nofollow" target="_blank">https://localhost:9200/_cat/nodes?v</a><br /> Defaulted container "easysearch" out of: easysearch, init-config (init)<br /> ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name<br /> 10.42.0.130 12 63 12 1.53 2.67 2.11 - - es-test-coordinate-easysearch-0<br /> 10.42.0.136 53 65 52 1.53 2.67 2.11 dir - es-test-data-easysearch-1<br /> 10.42.0.139 6 63 14 1.53 2.67 2.11 - - es-test-coordinate-easysearch-1<br /> 10.42.0.133 10 63 14 1.53 2.67 2.11 imr - es-test-master-easysearch-1<br /> 10.42.0.149 58 65 59 1.53 2.67 2.11 dir - es-test-data-easysearch-2<br /> 10.42.0.124 53 68 35 1.53 2.67 2.11 imr * es-test-master-easysearch-0<br /> 10.42.0.127 56 65 46 1.53 2.67 2.11 dir - es-test-data-easysearch-0<br /> 10.42.0.146 15 63 18 1.53 2.67 2.11 imr - es-test-master-easysearch-2<br />

    至此,多集群已部署完成。

    关于 Easysearch


    ![about easysearch](https://www.infinilabs.com/img ... er.png)

    INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。

    官网文档:<https://www.infinilabs.com/doc ... gt%3B

    下载地址:<https://www.infinilabs.com/download>;

Elastic日报 第1709期 (2023-09-25)

Elastic日报yuebancanghai 发表了文章 • 0 个评论 • 122 次浏览 • 1 天前 • 来自相关话题

1. Elasticsearch 聚合获取原始数据并分页&排序&模糊查询
   https://blog.csdn.net/yangshan ... 07786
2. Elasticsearch:如何在 Elasticsearch 中轻松编写 Painless 脚本
   https://blog.csdn.net/UbuntuTo ... 26782
3. Elasticsearch 主从同步之跨集群复制
   https://blog.51cto.com/elasticsearch/5768458
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili

这个特性有没有人测试过???

回复

ElasticsearchCharele 回复了问题 • 1 人关注 • 1 个回复 • 248 次浏览 • 1 天前 • 来自相关话题

Elastic日报 第1708期 (2023-09-22)

Elastic日报laoyang360 发表了文章 • 0 个评论 • 294 次浏览 • 3 天前 • 来自相关话题

1、Elasticsearch 引擎非常适合数据科学分析的 9 个理由
https://www.computer.org/publi ... ience
 
2、在 Elasticsearch 中实现时序数据的热温架构
https://codersite.dev/hot-warm ... arch/
 
3、在 Elasticsearch 中更新同义词:同义词 API 简介
https://www.elastic.co/cn/blog ... s-api
 
 
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili

INFINI Labs 产品更新 | Gateway 支持基于 Kafka 的复制能力,发布 Helm Charts 部署方式

资讯动态liaosy 发表了文章 • 0 个评论 • 273 次浏览 • 4 天前 • 来自相关话题

![release](https://www.infinilabs.com/img ... er.png)

INFINI Labs 产品又更新啦~。本次更新概要如下:Easysearch 新增了索引字段相关统计 API,优化了 source_reuse 提升压缩效率;Gateway 新增诸多新特性,如:支持基于 Kafka 的复制能力,添加可插拔的分布式锁实现,新增 CPU 资源限制等功能;Console 本次主要优化了数据迁移功能,迁移任务详情页新增了若干指标图和日志查看等功能。

欢迎大家下载使用和反馈。

INFINI Helm Charts v0.1.0


INFINI Helm Charts 是一组 Kubernetes 部署包管理工具。基于 Helm Charts,我们将 INFINI Labs 旗下相关产品预先配置好程序资源包,大大简化了部署流程。Github 仓库地址:<https://github.com/infinilabs/helm-charts>;。

Helm Charts 本次更新如下:

Features


  • 添加 Console Chart
  • 添加 Easysearch Chart,支持单节点以及多节点(节点角色可配置)部署

    部署视频演示:

  • [如何通过 Helm Chart 部署 Easysearch](https://www.bilibili.com/video/BV1Cp4y1w71F/)
  • [如何通过 Helm Chart 部署 Console](https://www.bilibili.com/video/BV1qm4y157hu/)

    博客文章:

  • [如何通过 Helm Chart 部署 Easysearch](https://www.infinilabs.com/blo ... earch/)

    INFINI Easysearch v1.6.0


    INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。

    Easysearch 本次更新如下:

    Features


  • 新增 _field_usage_stats API,统计索引每个字段的访问次数
  • 新增 _disk_usage API,可以分析指定索引每个字段的磁盘占用大小
  • 增加 flattened 类型,将 JSON 对象作为字符串处理,可以减少嵌套 JSON 型的文档的大小

    Improvements


  • source_reuse 增加对 _source 中数字类型的值进行复用压缩,可进一步降低 _source 磁盘占用
  • 改进 source_reuse 筛选字段的逻辑

    INFINI Gateway v1.18.0


    INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。

    Gateway 本次更新如下:

    Breaking changes


  • 彻底移除了 request_body_truncate 和 response_body_truncate 过滤器

    Features


  • 支持基于 Kafka 的复制能力
  • 在请求上下文中添加 _util.generate_uuid
  • 在请求上下文中添加 _util.increment_id.BUCKET_NAME
  • 在 Pipeline 配置中添加 singleton,防止多个 Pipeline 同时运行
  • 添加可插拔的分布式锁实现
  • 添加通用应用程序的 preference 配置
  • 泛化队列抽象,重构磁盘队列,完善 Kafka 实现
  • 添加 merge_to_bulk 处理器, 废弃 indexing_merge 处理器
  • 添加 flow_replay 处理器,废弃 flow_runner 处理器
  • 为复制场景添加 replication_correlation
  • 添加 hash_mod 过滤器
  • 在 bulk_response_process 过滤器中添加新参数
  • 添加 request_reshuffle 过滤器
  • 添加资源限制,允许设置最大 CPU 数或绑定亲和性
  • 支持模板中的嵌套变量
  • 添加 rewrite_to_bulk 过滤器

    Bug fix


  • 修复了 Pipeline 中重试延迟未生效的问题
  • 修复了模板中不支持数字的问题
  • 修复了队列选择器通过标签的问题,如果指定了多个标签,它们都应该一起匹配

    Improvements


  • 将所有模块名称转换为小写
  • 在启动期间预取 Elasticsearch 元数据
  • 添加应用程序范围的关闭信号
  • 重构队列 API,支持 Kafka 管理
  • 在 Badger 模块中添加 enabled
  • 允许使用优先级注册模块/插件
  • 统一队列的使用和初始化
  • 优化 bulk_reshuffle 过滤器的性能,添加响应头 X-Bulk-Reshuffled
  • 支持在 queue 过滤器中使用变量,允许输出最后生成的消息偏移量

    INFINI Console v1.8.0


    INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。

    Console 在线体验: <http://demo.infini.cloud>; (用户名/密码:readonly/readonly)。

    Console 本次更新如下:

    Features


  • 数据迁移任务支持自定义名称和添加标签
  • 数据迁移任务详情页新增若干指标
  • 数据迁移任务详情页新增查看日志

    Improvements


  • 数据迁移 UI 优化
  • 优化监控报表、数据看板、数据探索的时间控件 UI

    ![数据迁移列表页](https://www.infinilabs.com/img ... /1.jpg)

    ![数据迁移详情页](https://www.infinilabs.com/img ... /2.jpg)

    期待反馈


    欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(<https://github.com/infinilabs>;) 中的对应项目中提交 Feature Request 或提交 Bug。

  • INFINI Gateway: <https://github.com/infinilabs/gateway/issues>;
  • INFINI Console: <https://github.com/infinilabs/console/issues>;
  • 下载地址: <https://www.infinilabs.com/download>;

    您还可以通过邮件联系我们:hello@infini.ltd

    或者拨打我们的热线电话:(+86) 400-139-9200

    欢迎加入 Discord 聊天室:<https://discord.com/invite/4tKTMkkvVX>;

    也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。

    ![联系我们](https://www.infinilabs.com/img ... ew.jpg)

    关于极限科技(INFINI Labs)


    ![INFINI Labs](https://www.infinilabs.com/img ... bs.png)

    极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

    极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

    官网:<https://www.infinilabs.com>;

Elastic日报 第1707期 (2023-09-21)

Elastic日报Se7en 发表了文章 • 0 个评论 • 391 次浏览 • 5 天前 • 来自相关话题

1.使用 AWS Lambda 和 SNS 将数据写入 Elasticsearch
https://dev.to/jainec/ingest-d ... -3af4
2.Elasticsearch 集成 Slack 发送告警(需要梯子)
https://medium.com/%40kulekci/ ... cf126
3.了解并解决文档更新后 Elasticsearch 分数变化的问题(需要梯子)
https://kulekci.medium.com/und ... 76e38

编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili

Elastic日报 第1706期 (2023-09-20)

Elastic日报kin122 发表了文章 • 0 个评论 • 419 次浏览 • 6 天前 • 来自相关话题

1.BKD 索引实现原理
https://mp.weixin.qq.com/s/mFD-W2_D4PDscsoO3SDbIQ
2. Elasticsearch:为具有许多 and/or 高频术语的 top-k 查询带来加速
https://blog.csdn.net/UbuntuTo ... 54687
3.ES 字段设计的建议(需要梯子)
https://medium.com/elasticsear ... 2991d

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili

Elastic日报 第1705期 (2023-09-19)

Elastic日报God_lockin 发表了文章 • 0 个评论 • 458 次浏览 • 2023-09-19 10:27 • 来自相关话题


1. 最简学习 + 测试 ES,java + docker本地搞起来
https://medium.com/%40dfalcone ... efc46
1. M1 芯片的Mac里怎么用docker玩ES?(需要梯子)
https://medium.com/%40guillem. ... c7ad2
1. es 8 + spring boot3 不完全手册(需要梯子)
https://medium.com/%40truongbu ... 15197
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
 

了解下下ES中的父子文档

回复

ElasticsearchCharele 回复了问题 • 1 人关注 • 6 个回复 • 694 次浏览 • 3 天前 • 来自相关话题

Tencent ES

回复

Elasticsearchlaiziyu 发起了问题 • 1 人关注 • 0 个回复 • 532 次浏览 • 2023-09-18 14:28 • 来自相关话题

Elastic日报 第1704期 (2023-09-18)

Elastic日报yuebancanghai 发表了文章 • 0 个评论 • 508 次浏览 • 2023-09-18 11:04 • 来自相关话题


1. Function Score Query 优化算分和Term&PhraseSuggester
   https://blog.csdn.net/zhougube ... 98402
2. Elasticsearch 中字段类型(Field Type)详解
   https://blog.csdn.net/aben_sky ... 15175
3. Elasticsearch 从搜索中获取选定的字段 fields
   https://blog.csdn.net/UbuntuTo ... 53365
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili

Elastic日报 第1703期 (2023-09-15)

Elastic日报laoyang360 发表了文章 • 0 个评论 • 634 次浏览 • 2023-09-15 15:11 • 来自相关话题

1、使用 Chatgpt作为 Elasticsearch 插件
https://www.elastic.co/es/blog ... -data

2、【视频】如何计算 Elasticsearch 或 Kibana 中的时差?(梯子)
https://www.youtube.com/watch?v=JD08pJsx27w

3、使用 E5 嵌入模型进行多语言矢量搜索
https://search-labs.elastic.co ... model
 
 
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili

Elastic日报 第1702期 (2023-09-14)

Elastic日报Se7en 发表了文章 • 0 个评论 • 654 次浏览 • 2023-09-14 22:05 • 来自相关话题

1.pandagg 简介:受 pandas 启发的 Elasticsearch 聚合库(需要梯子)
https://levelup.gitconnected.c ... 3ce63
2.可观测性故事:Elasticsearch 性能杀手(需要梯子)
https://medium.com/adyen/tales ... fc0bc
3.使用 Elasticsearch 和 Neo4j 实现可观测性(需要梯子)
https://medium.com/%40alex.pui ... c9e88

编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili

怎么给集群中节点设置权重,想让某个节点具有优先成为主节点

ElasticsearchCharele 回复了问题 • 2 人关注 • 1 个回复 • 718 次浏览 • 2023-09-15 11:00 • 来自相关话题