不为失败找理由,要为成功找方法。
黑神话悟空

黑神话悟空

Easysearch x 《黑神话悟空》有奖征文获奖结果公示

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2405 次浏览 • 2024-08-20 13:34 • 来自相关话题

随着《黑神话:悟空》游戏的正式发售,我们 INFINI Labs 组织的 Easysearch 有奖征文大赛也圆满落幕。本次征文活动自启动以来,收到了众多创作者的热情投稿。在此,我们衷心感谢每一位参与活动的作者,是你们的才华和热情让这次征文活动异彩纷呈。

经过专业评审团的认真评选,最终确定了以下获奖作品及作者,现予以公布:

奖项 作者 作品 奖品
一等奖 AWS 加油站 玩转 Easysearch 语法 《黑神话:悟空》数字豪华版一套
二等奖 杨帆 使用 Easysearch 打造企业内部知识问答系统 《黑神话:悟空》数字标准版一套
二等奖 李家兴 从 Elasticsearch 到 Easysearch:国产搜索型数据库的崛起与未来展望 《黑神话:悟空》数字标准版一套
三等奖 严少安 Easysearch,地表最强,没有之一! INFINI Labs 咖啡杯 / 指甲剪套装
三等奖 张磊 Easysearch 新特性:写入限流功能介绍 INFINI Labs 咖啡杯 / 指甲剪套装
三等奖 keep 如何在 MacOS 环境下快速安装部署 Easysearch INFINI Labs 咖啡杯 / 指甲剪套装

恭喜以上获奖作者,你们的作品不仅展现了 Easysearch 的强大功能,也为社区成员提供了宝贵的学习资源。我们将会通过小助手微信联系各位获奖者,安排奖品的发放。

同时,我们也要感谢所有参与本次征文活动的作者,你们的每一篇 Easysearch 投稿都是对社区的一份贡献。我们期待在未来的活动中再次与大家相遇。

请继续关注 INFINI Labs,我们将持续为大家带来更多优质的产品和精彩的活动。再次感谢大家的参与和支持!

如有疑问或想加入 Easysearch 用户交流群请联系我们小助手!

小助手微信

附征文活动原文:

天命人, 你在吗?快拿走你的《黑神话:悟空》游戏,去开启神话冒险!

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

使用 AWS EKS 部署 Easysearch

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2639 次浏览 • 2024-08-15 15:47 • 来自相关话题

随着企业对数据搜索和分析需求的增加,高效的搜索引擎解决方案变得越来越重要。Easysearch 作为一款强大的企业级搜索引擎,可以帮助企业快速构建高性能、可扩展的数据检索系统。在云计算的背景下,使用容器化技术来部署和管理这些解决方案已经成为主流选择,而 Amazon Elastic Kubernetes Service (EKS) 则提供了一个强大且易于使用的平台来运行容器化的应用程序。

本文旨在探索如何在 AWS EKS 上部署 Easysearch,并通过实践操作展示从集群配置到服务部署的完整过程。通过本文,读者可以了解如何在云环境中快速搭建高效的搜索服务,最大化利用云资源的弹性和可扩展性。

准备工作

  1. 准备一个 AWS Global 账户,本文选择东京区域(ap-northeast-1)进行部署。
  2. 部署 EKS 集群版本为 1.30,同时需要在 Linux 环境中安装 AWS CLI、Helm、eksctl 和 kubectl 等命令行工具。本文使用 eksctl 管理 EKS 集群,eksctl 是 AWS 官方推出的高效管理 EKS 集群的命令行工具。
  3. 本文将使用 EBS-CSI-Driver 作为存储驱动来部署 Easysearch 服务,并通过 AWS LoadBalancer Controller 将 Easysearch Console 服务以 AWS 负载均衡器的方式对外提供服务,连接集群内部的 Easysearch。

命令行工具的安装

安装 AWS CLI:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
./aws/install -i /usr/local/aws-cli -b /usr/local/bin
aws --version

安装 Helm:

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh
chmod 700 get_helm.sh
./get_helm.sh

安装 eksctl:

# 对于 ARM 系统,设置 ARCH 为:`arm64`、`armv6` 或 `armv7`
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH

curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"

# (可选)验证校验和
curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check

tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz

sudo mv /tmp/eksctl /usr/local/bin

安装 kubectl:

curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.30.2/2024-07-12/bin/linux/amd64/kubectl
chmod +x ./kubectl
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH

配置 EKS 集群环境

我们使用 eksctl 创建一个 1.30 版本的集群,这里通过 YAML 模板定义 EKS 集群的 VPC 网络配置,并根据 eksctl 官方文档调整相关字段。将以下模板保存为 my-cluster.yaml 文件:

# 创建一个包含 2 个 m5.2xlarge 实例的节点组
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: LAB-1-30
  region: ap-northeast-1

vpc:
  subnets:
    private:
      ap-northeast-1a: { id: subnet-11223344 }
      ap-northeast-1c: { id: subnet-55667788 }
      ap-northeast-1d: { id: subnet-99001122 }

nodeGroups:
  - name: managed-workers-01
    labels: { role: workers }
    instanceType: m5.2xlarge
    minSize: 2
    maxSize: 4
    desiredCapacity: 3
    privateNetworking: true
    volumeSize: 30

通过以下命令创建集群:

eksctl create cluster -f my-cluster.yaml

集群创建完成后,使用以下命令检查集群是否就绪:

# 更新 kubeconfig 的凭证文件
aws eks update-kubeconfig --name LAB-1-30 --region ap-northeast-1
kubectl get node
[ec2-user@ip-10-0-0-84 ~]$ kubectl get node
NAME                                              STATUS   ROLES    AGE   VERSION
ip-10-0-100-132.ap-northeast-1.compute.internal   Ready    <none>   16m   v1.30.2-eks-1552ad0
ip-10-0-101-148.ap-northeast-1.compute.internal   Ready    <none>   16m   v1.30.2-eks-1552ad0

安装 EBS-CSI-Driver 插件,后续部署时可以指定 StorageClass 来使用亚马逊云的 EBS 块存储服务:

eksctl utils associate-iam-oidc-provider --region=ap-northeast-1 --cluster=LAB-1-30 --approve
eksctl create iamserviceaccount \
        --name ebs-csi-controller-sa \
        --namespace kube-system \
        --cluster LAB-1-30 \
        --region ap-northeast-1 \
        --role-name AmazonEKS_EBS_CSI_DriverRole \
        --role-only \
        --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
        --approve

eksctl create addon --cluster LAB-1-30 --name aws-ebs-csi-driver --version latest --region ap-northeast-1 \
  --service-account-role-arn arn:aws:iam::112233445566:role/AmazonEKS_EBS_CSI_DriverRole --force

[ec2-user@ip-10-0-0-84 ~]$ kubectl get pod -n kube-system | grep -i ebs
ebs-csi-controller-868598b64f-pwmxq   6/6     Running   0          11m
ebs-csi-controller-868598b64f-qn2lz   6/6     Running   0          11m
ebs-csi-node-fplxg                    3/3     Running   0          11m
ebs-csi-node-v6qwj                    3/3     Running   0          11m

安装 AWS LoadBalancer Controller 组件:

eksctl create iamserviceaccount \
  --cluster=LAB-1-30 \
  --region ap-northeast-1 \
  --namespace=kube-system \
  --name=aws-load-balancer-controller \
  --role-name AmazonEKSLoadBalancerControllerRole_130 \
  --attach-policy-arn=arn:aws:iam::112233445566:policy/AWSLoadBalancerControllerIAMPolicy \
  --approve

helm repo add eks https://aws.github.io/eks-charts
helm repo update eks
wget https://raw.githubusercontent.com/aws/eks-charts/master/stable/aws-load-balancer-controller/crds/crds.yaml
kubectl apply -f crds.yaml

helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
  -n kube-system \
  --set clusterName=LAB-1-30 \
  --set serviceAccount.create=false \
  --set serviceAccount.name=aws-load-balancer-controller  \
  --set region=ap-northeast-1

# 验证安装
kubectl get deployment -n kube-system aws-load-balancer-controller
NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
aws-load-balancer-controller   2/2     2            2           39s

至此,我们已经完成了 EKS 集群的配置。

安装 Easysearch 服务

本文中,将通过 AWS LoadBalancer 部署 Console 服务。首先,通过 Helm 将 Console 相关的模板文件拉取到本地,执行以下命令:

helm pull infinilabs/console
tar -zxvf console-0.2.0.tgz
cd console

目录结构如下:

[ec2-user@ip-10-0-0-84 console]$ tree
.
├── Chart.yaml
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── statefulset.yaml
└── values.yaml

我们需要修改 service.yamlvalues.yaml 中的部分配置:

# serivce.yaml
# 参考 AWS Load Balancer Controller 的文档,配置负载均衡器面向公网
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance
    service.beta.kubernetes.io/aws-load-balancer-subnets: subnet-11223344, subnet-55667788, subnet-9911223344

# values.yaml
# 使用 GP2 StorageClass,并指定 Service Type 为 LoadBalancer
service:
  type: LoadBalancer
storageClassName: gp2

使用 Helm 部署 console 服务:

kubectl create ns Easysearch
helm upgrade --install console . -f values.yaml -n Easysearch

# 检查是否创建了 Service 并获取负载均衡器的 DNS 地址
kubectl get svc -n Easysearch
NAME         TYPE           CL

USTER-IP       EXTERNAL-IP                                               PORT(S)             AGE
console      LoadBalancer   172.20.237.237   k8s-xxxx.elb.ap-northeast-1.amazonaws.com                 9000:32190/TCP      6h49m

接下来是创建 Easysearch 单节点集群服务。创建一个新的 values.yaml 文件并定义使用 GP2 类型的 StorageClass,如下:

cd ~
echo 'storageClassName: gp2' > values.yaml
cat << EOF | kubectl apply -n Easysearch -f -
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: Easysearch-ca-issuer
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: Easysearch-ca-certificate
spec:
  commonName: Easysearch-ca-certificate
  duration: 87600h0m0s
  isCA: true
  issuerRef:
    kind: Issuer
    name: Easysearch-ca-issuer
  privateKey:
    algorithm: ECDSA
    size: 256
  renewBefore: 2160h0m0s
  secretName: Easysearch-ca-secret
EOF
helm install Easysearch infinilabs/Easysearch -n Easysearch -f values.yaml

至此,我们已在 AWS EKS 平台上完成了 Easysearch 的部署。可以通过 Kubernetes 中的 Service DNS 地址在 Console 中验证连接到内部的 Easysearch 服务。本文中使用的地址为:Easysearch.Easysearch.svc.cluster.local:9200

也可以在 Easysearch 的 Pod 中使用命令进行连接验证:

kubectl exec -n Easysearch Easysearch-0 -it -- curl -ku 'admin:admin' https://Easysearch.Easysearch.svc.cluster.local:9200
{
  "name" : "Easysearch-0",
  "cluster_name" : "infinilabs",
  "cluster_uuid" : "fq3r_ZaHSFuZDjDtKyJY_w",
  "version" : {
    "distribution" : "Easysearch",
    "number" : "1.6.0",
    "distributor" : "INFINI Labs",
    "build_hash" : "e5d1ff9067b3dd696d52c61fbca1f8daed931fb7",
    "build_date" : "2023-09-22T00:55:32.292580Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.2",
    "minimum_wire_lucene_version" : "7.7.0",
    "minimum_lucene_index_compatibility_version" : "7.7.0"
  },
  "tagline" : "You Know, For Easy Search!"
}

总结

通过本文的实践操作,我们成功地在 AWS EKS 平台上部署了 Easysearch 服务,验证了其在云环境中的高效运行能力。从 EKS 集群的配置、存储和网络资源的准备,到最终的 Easysearch 部署与测试,整个过程展示了如何利用 AWS 提供的工具和服务,快速构建企业级搜索引擎解决方案。

通过这次部署,我们不仅了解了 Easysearch 在 Kubernetes 环境中的部署方法,还深入体验了 AWS EKS 平台的强大功能。未来,随着企业数据量的不断增长,结合云计算的弹性和容器化技术的优势,将会为企业的数据管理和搜索提供更加高效的解决方案。

参考文档

  1. AWS 命令行界面
  2. Helm
  3. eksctl
  4. Helm Chart 部署 Easysearch

关于 Easysearch 有奖征文活动

黑神话悟空

无论你是 Easysearch 的老用户,还是第一次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。

详情查看:Easysearch 征文活动

作者:韩旭,亚马逊云技术支持,亚马逊云科技技领云博主,目前专注于云计算开发和大数据领域。
原文:https://infinilabs.cn/blog/2024/deploy-easysearch-using-aws-eks/

Easysearch 新特性:写入限流功能介绍

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2631 次浏览 • 2024-07-17 14:52 • 来自相关话题

背景

在 Easysearch 的各种使用场景中,高写入吞吐量的场景占了很大一部分,由此也带来了一些使用上的问题,很多用户由于使用经验不足,对集群的写入压测进行的不够充分,不能很好的规划集群的写入量。

导致经常发生以下问题:

  • 写入吞吐量过大对内存影响巨大,引发节点 OOM,节点掉线问题。
  • 对 CPU 和内存的占用严重影响了其他的查询业务的响应。
  • 以及磁盘 IO 负载增加,挤占集群的网络带宽等问题。

之前就有某金融保险类客户遇到了因业务端写入量突然猛增导致数据节点不停的 Full GC,进而掉入了不停的掉线,上线,又掉线的恶性循环中。当时只能建议用户增加一个类似“挡板”的服务,在数据进入到集群之前进行拦截,对客户端写入进行干预限流:

这样做虽然有效,但是也增加了整个系统的部署复杂性,提高了运维成本。

根据客户的实际场景,Easysearch 从 1.8.0 版本开始引入了节点和 Shard 级别的限流功能,不用依赖第三方就可以限制写入压力,并在 1.8.2 版本增加了索引级别的写入限流。 注意:所有写入限流都是针对各数据节点的 Primary Shard 写入进行限流的,算上副本的话吞吐量要乘以 2。

限流示意图:

下面是限流前后相同数据节点的吞吐量和 CPU 对比:

测试环境:

ip       name   http          port version role master
10.0.0.3 node-3 10.0.0.3:9209 9303 1.8.0   dimr -
10.0.0.3 node-4 10.0.0.3:9210 9304 1.8.0   im   -
10.0.0.3 node-2 10.0.0.3:9208 9302 1.8.0   dimr -
10.0.0.3 node-1 10.0.0.3:9207 9301 1.8.0   dimr *

测试索引配置:

PUT test_0
{
  "settings": {
    "number_of_replicas": 1,
    "number_of_shards": 3
  }
}

压测工具:采用极限科技的 INFINI Loadgen 压测,这款压测工具使用简单,可以方便对任何支持 Rest 接口的库进行压测。

压测命令:

 ./loadgen-linux-amd64 -d 180 -c 10 -config loadgen-easy-1.8.yml

压测 180 秒,10 个并发,每个 bulk 请求 5000 条。

节点级别限流

通过 INFINI Console 监控指标可以看到,限流之前的某个数据节点,CPU 占用 10%,每秒写入 40000 条左右:

在 Cluster Settings 里配置,启用节点级别限流,限制每个节点的每秒最大写入 10000 条,并在默认的 1 秒间隔内进行重试,超过默认间隔后直接拒绝。

PUT _cluster/settings
{
  "transient": {
    "cluster.throttle.node.write": true,
    "cluster.throttle.node.write.max_requests": 10000,
    "cluster.throttle.node.write.action": "retry"
  }
}

限流后,CPU 占用降低了约 50%,算上副本一共 20000 条每秒:

Shard 级别限流

设置每个分片最大写入条数为 2000 条每秒

PUT _cluster/settings
{
  "transient": {
    "cluster.throttle.shard.write": true,
    "cluster.throttle.shard.write.max_requests": 2000,
    "cluster.throttle.shard.write.action": "retry"
  }
}

集群级别的监控,同样是只针对主 Shard。

从 Console 的监控指标可以看出,索引 test_0 的 Primary indexing 维持在 6000 左右,正好是 3 个主分片限制的 2000 的写入之和。

再看下数据节点监控,Total Shards 表示主分片和副本分片的写入总和即 4000,单看主分片的话,正好是 2000.

索引级别限流

有时,集群中可能某个索引的写入吞吐过大而影响了其他业务,也可以针对特定的索引配置写入限制。 可以在索引的 Settings 里设置当前索引每秒写入最大条数为 6000:

PUT test_0
{
  "settings": {
    "number_of_replicas": 1,
    "number_of_shards": 3,
    "index.throttle.write.max_requests": 6000,
    "index.throttle.write.action": "retry",
    "index.throttle.write.enable": true
  }
}

下图索引的 Primary indexing 在 6000 左右,表示索引的所有主分片的写入速度限制在了 6000。

总结

通过本次测试对比,可以看出限流的好处:

  1. 有效控制写入压力: 写入限流功能能够有效限制每个节点和每个 Shard 的写入吞吐量,防止因写入量过大而导致系统资源被过度消耗的问题。

  2. 降低系统资源占用: 在限流前,某数据节点的 CPU 占用率约为 10%。限流后,CPU 占用率显著降低至约 5%,减少了约 50%。这表明在高并发写入场景下,写入限流功能显著降低了系统的 CPU 负载。

  3. 提高系统稳定性: 通过控制写入吞吐量,避免了频繁的 Full GC 和节点掉线问题,从而提升了系统的整体稳定性和可靠性。

  4. 保障查询业务性能: 写入限流功能减少了写入操作对 CPU 和内存的占用,确保其他查询业务的响应性能不受影响。

综上所述,写入限流功能在高并发写入场景下表现出色,不仅有效控制了写入压力,还显著降低了系统资源占用,从而提高了系统的稳定性和查询业务的性能。

关于 Easysearch 有奖征文活动

黑神话悟空

无论你是 Easysearch 的老用户,还是第一次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。

详情查看:Easysearch 征文活动

作者:张磊

原文:https://infinilabs.cn/blog/2024/easysearch-new-feature-write-throttling-introduction/

天命人, 你在吗?快拿走你的《黑神话:悟空》游戏,去开启神话冒险!Easysearch 有奖征文活动来袭!

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2437 次浏览 • 2024-06-26 23:26 • 来自相关话题

第一章:神秘的召唤

在一个普通的早晨,INFINI Labs 的办公室里,阳光透过窗户洒进来,给每个人带来了一天的好心情。就在这时,办公室的公告板上突然出现了一张神秘的海报,上面写着:

“天命人, 你在吗?快拿走你的《黑神话:悟空》游戏,去开启神话冒险!”

黑神话:悟空海报

这张海报立刻吸引了小编的目光,心中升起了一股好奇心,这究竟是怎样的一个活动?而且,《黑神话:悟空》竟然作为奖品!这可是大家期待已久的国产大作!

第二章:拨开迷雾

《黑神话:悟空》 是一款基于《西游记》改编的中国神话动作角色扮演游戏,由中国游戏公司 Game Science 开发。游戏以其出色的画面和创新的玩法在全球范围内引起了广泛关注,是 2024 年最受期待的国产游戏大作,将于 8 月 20 日正式发售。

在游戏中,玩家将化身“天命之人”——孙悟空,踏上惊险刺激的西游冒险之旅。游戏不仅高度还原了《西游记》中的经典场景和角色,还融入了大量原创元素,带来全新的剧情体验。

第三章:踏上征途

作为“天命之人”,你将穿越重重险阻,挑战强大的妖魔鬼怪,探索神秘的古代遗迹,揭开传说背后的秘密。游戏中充满了紧张刺激的战斗场景和丰富多样的任务,让你能沉浸在这个神话般的世界中。

不要犹豫,加入我们,一起踏上征途,成为传说的一部分吧!

INFINI Labs 首期征文活动来袭!!!

无论你是 Easysearch 的老用户,还是第一次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。

征文主题

  1. 使用体验:分享你在学习和使用 Easysearch 的体验感受、反馈。
  2. 案例实践:分享你在工作使用 Easysearch 的案例和实践经验。
  3. 版本对比:对比不同版本的 Easysearch,聊聊各自的优劣和特点。
  4. 性能测评:对 Easysearch 的性能进行详细测评,展示其在各种使用场景下的表现。
  5. 功能解析:深入剖析 Easysearch 的独特功能,让更多人了解它的强大之处。
  6. 国产替代:探讨 Easysearch 在 Elasticsearch 国产替代中的重要意义及实战经验。

为了帮助首次了解 Easysearch 的小伙伴,我们还会提供技术支持,让你轻松上手,畅快写作。

第四章:创作你的传奇

无论你是哪个领域的爱好者,这次活动都是你展示才华的绝佳机会。拿起笔,写下你的故事,分享你与 Easysearch 的点滴,畅谈你对《黑神话:悟空》的期待。

我们期待着每一个参与者的精彩作品,也期待着与你一起在《黑神话:悟空》的世界中共赴一场史诗级的冒险!

活动时间:即日起至 8 月 20 日

参与方式:微信联系 INFINI Labs 小编(INFINI-Labs),请在加好友时备注【Easysearch 征文】字样。

联系方式

奖品设置

  • 一等奖:1 名,《黑神话:悟空》游戏数字豪华版
  • 二等奖:2 名,《黑神话:悟空》游戏数字标准版
  • 三等奖:若干名,INFINI Labs 定制礼品

拿起你的笔,登录 INFINI Labs 社区,开始你的征文之旅。你的故事,我们在这里等你!

活动补充说明

Easysearch 是什么?

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

征文时间

文章征集:即日起 - 8 月 15 日

文章评审:2024 年 8 月 16 日 - 8 月 19 日

获奖公示:2024 年 8 月 20 日

参与方式

添加 INFINI Labs 小助手微信(INFINI-Labs),进行文章投稿(文章形式不限,如:开源中国、CSDN、微信公众号、掘金、知乎、Markdown、Word、在线文档等)。 使用过程中遇到任何问题,欢迎随时反馈给小助手。

征文要求

  • 主题要求:围绕 Easysearch,包括但不限于使用心得、案例实践、功能解析、性能测评、数据迁移、容灾、安全、国产替代、我与 Easysearch 的故事等。
  • 文章标题:需包含 Easysearch 关键词,如:Easysearch 入门指南 xxx、如何使用 Easysearch xxx、Easysearch 助力 xxx 等。
  • 文章内容:正文字数建议 800 以上,且要求内容结构完整、文字通顺、代码规范、无错别字、尽量做到图文并茂。
  • 原创要求:提交的稿件需为原创作品,不得侵犯他人知识产权。
  • 加分项:有借鉴性、实用性、创新性。

所有提交投稿文章经由 INFINI Labs 征文组委会进行审核,最终分级别选出一批入围作品,并给予相应奖品。

评奖规则

入围文章排名,分为【组委会打分】和【互动拉票得分】

  • 组委会打分:100 分值,权重 60 %
    • 内容质量(40%):文章内容符合征文主题,具备原创性、独特性、高质量。
    • 创新性(20%):文章内容的创新性,鼓励投稿者用 Easysearch 去完成创造性、有挑战性的任务,并拿到一定的结果。
    • 实用性(20%):可以对社区其他用户来带来学习和帮助,获得实用的经验。
    • 清晰度(20%):整篇文章是否清晰的被叙述出来,有重点,排版美观,图文并茂。
  • 互动拉票得分:100 分值,权重 40%。根据阅读量、点赞量、收藏量三个指标聚合计算。
    • 阅读量:每 100 次阅读得 10 分,上限 50 分。
    • 点赞量:每个赞得 1 分,上限 30 分。
    • 收藏量:每个收藏得 2 分,上限 20 分。
  • 加权分数相等时,组委会得分高者排名优先。

说明:

  1. 征文将由参与者自行公开发布或提交 INFINI Labs 转发,发布后至评审前一天互动数据有效。
  2. 严禁刷量和作弊,比如短时间内异常增长的阅读量或点赞量,组委会有权对刷量和作弊文章取消评奖资格。
  3. 投稿者可以对评分规则提出疑问或建议,并根据反馈进行适当调整。

奖品设置

奖品分级别设置,根据文章综合评分由高到低排序,详细见下表。

奖项 人数 标准 奖品
一等奖 1 人 文章具有代表性及影响力,
综合评分由高到低
《黑神话:悟空》数字豪华版一套
二等奖 2 人 综合评分由高到低 《黑神话:悟空》数字标准版一套
三等奖 若干人 综合评分由高到低 咖啡杯 / 指甲套装

征文奖品

其他说明

  1. 文章文体不限,可以选择与 Easysearch 相关的任何内容。
  2. 文章必须原创,凡发现转载、抄袭等侵权行为,取消活动参与资格。
  3. 参加征文活动的文章作者拥有著作权,INFINI Labs 拥有使用权。
  4. 本次活动每位用户可投递多篇文章,但同一用户最终只能获奖一次。
  5. 本次活动最终解释权归 INFINI Labs 所有。

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

联系我们

原文:https://infinilabs.cn/blog/2024/easysearch-essay-competition-wukong/

Easysearch x 《黑神话悟空》有奖征文获奖结果公示

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2405 次浏览 • 2024-08-20 13:34 • 来自相关话题

随着《黑神话:悟空》游戏的正式发售,我们 INFINI Labs 组织的 Easysearch 有奖征文大赛也圆满落幕。本次征文活动自启动以来,收到了众多创作者的热情投稿。在此,我们衷心感谢每一位参与活动的作者,是你们的才华和热情让这次征文活动异彩纷呈。

经过专业评审团的认真评选,最终确定了以下获奖作品及作者,现予以公布:

奖项 作者 作品 奖品
一等奖 AWS 加油站 玩转 Easysearch 语法 《黑神话:悟空》数字豪华版一套
二等奖 杨帆 使用 Easysearch 打造企业内部知识问答系统 《黑神话:悟空》数字标准版一套
二等奖 李家兴 从 Elasticsearch 到 Easysearch:国产搜索型数据库的崛起与未来展望 《黑神话:悟空》数字标准版一套
三等奖 严少安 Easysearch,地表最强,没有之一! INFINI Labs 咖啡杯 / 指甲剪套装
三等奖 张磊 Easysearch 新特性:写入限流功能介绍 INFINI Labs 咖啡杯 / 指甲剪套装
三等奖 keep 如何在 MacOS 环境下快速安装部署 Easysearch INFINI Labs 咖啡杯 / 指甲剪套装

恭喜以上获奖作者,你们的作品不仅展现了 Easysearch 的强大功能,也为社区成员提供了宝贵的学习资源。我们将会通过小助手微信联系各位获奖者,安排奖品的发放。

同时,我们也要感谢所有参与本次征文活动的作者,你们的每一篇 Easysearch 投稿都是对社区的一份贡献。我们期待在未来的活动中再次与大家相遇。

请继续关注 INFINI Labs,我们将持续为大家带来更多优质的产品和精彩的活动。再次感谢大家的参与和支持!

如有疑问或想加入 Easysearch 用户交流群请联系我们小助手!

小助手微信

附征文活动原文:

天命人, 你在吗?快拿走你的《黑神话:悟空》游戏,去开启神话冒险!

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

使用 AWS EKS 部署 Easysearch

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2639 次浏览 • 2024-08-15 15:47 • 来自相关话题

随着企业对数据搜索和分析需求的增加,高效的搜索引擎解决方案变得越来越重要。Easysearch 作为一款强大的企业级搜索引擎,可以帮助企业快速构建高性能、可扩展的数据检索系统。在云计算的背景下,使用容器化技术来部署和管理这些解决方案已经成为主流选择,而 Amazon Elastic Kubernetes Service (EKS) 则提供了一个强大且易于使用的平台来运行容器化的应用程序。

本文旨在探索如何在 AWS EKS 上部署 Easysearch,并通过实践操作展示从集群配置到服务部署的完整过程。通过本文,读者可以了解如何在云环境中快速搭建高效的搜索服务,最大化利用云资源的弹性和可扩展性。

准备工作

  1. 准备一个 AWS Global 账户,本文选择东京区域(ap-northeast-1)进行部署。
  2. 部署 EKS 集群版本为 1.30,同时需要在 Linux 环境中安装 AWS CLI、Helm、eksctl 和 kubectl 等命令行工具。本文使用 eksctl 管理 EKS 集群,eksctl 是 AWS 官方推出的高效管理 EKS 集群的命令行工具。
  3. 本文将使用 EBS-CSI-Driver 作为存储驱动来部署 Easysearch 服务,并通过 AWS LoadBalancer Controller 将 Easysearch Console 服务以 AWS 负载均衡器的方式对外提供服务,连接集群内部的 Easysearch。

命令行工具的安装

安装 AWS CLI:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
./aws/install -i /usr/local/aws-cli -b /usr/local/bin
aws --version

安装 Helm:

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh
chmod 700 get_helm.sh
./get_helm.sh

安装 eksctl:

# 对于 ARM 系统,设置 ARCH 为:`arm64`、`armv6` 或 `armv7`
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH

curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"

# (可选)验证校验和
curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check

tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz

sudo mv /tmp/eksctl /usr/local/bin

安装 kubectl:

curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.30.2/2024-07-12/bin/linux/amd64/kubectl
chmod +x ./kubectl
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH

配置 EKS 集群环境

我们使用 eksctl 创建一个 1.30 版本的集群,这里通过 YAML 模板定义 EKS 集群的 VPC 网络配置,并根据 eksctl 官方文档调整相关字段。将以下模板保存为 my-cluster.yaml 文件:

# 创建一个包含 2 个 m5.2xlarge 实例的节点组
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: LAB-1-30
  region: ap-northeast-1

vpc:
  subnets:
    private:
      ap-northeast-1a: { id: subnet-11223344 }
      ap-northeast-1c: { id: subnet-55667788 }
      ap-northeast-1d: { id: subnet-99001122 }

nodeGroups:
  - name: managed-workers-01
    labels: { role: workers }
    instanceType: m5.2xlarge
    minSize: 2
    maxSize: 4
    desiredCapacity: 3
    privateNetworking: true
    volumeSize: 30

通过以下命令创建集群:

eksctl create cluster -f my-cluster.yaml

集群创建完成后,使用以下命令检查集群是否就绪:

# 更新 kubeconfig 的凭证文件
aws eks update-kubeconfig --name LAB-1-30 --region ap-northeast-1
kubectl get node
[ec2-user@ip-10-0-0-84 ~]$ kubectl get node
NAME                                              STATUS   ROLES    AGE   VERSION
ip-10-0-100-132.ap-northeast-1.compute.internal   Ready    <none>   16m   v1.30.2-eks-1552ad0
ip-10-0-101-148.ap-northeast-1.compute.internal   Ready    <none>   16m   v1.30.2-eks-1552ad0

安装 EBS-CSI-Driver 插件,后续部署时可以指定 StorageClass 来使用亚马逊云的 EBS 块存储服务:

eksctl utils associate-iam-oidc-provider --region=ap-northeast-1 --cluster=LAB-1-30 --approve
eksctl create iamserviceaccount \
        --name ebs-csi-controller-sa \
        --namespace kube-system \
        --cluster LAB-1-30 \
        --region ap-northeast-1 \
        --role-name AmazonEKS_EBS_CSI_DriverRole \
        --role-only \
        --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
        --approve

eksctl create addon --cluster LAB-1-30 --name aws-ebs-csi-driver --version latest --region ap-northeast-1 \
  --service-account-role-arn arn:aws:iam::112233445566:role/AmazonEKS_EBS_CSI_DriverRole --force

[ec2-user@ip-10-0-0-84 ~]$ kubectl get pod -n kube-system | grep -i ebs
ebs-csi-controller-868598b64f-pwmxq   6/6     Running   0          11m
ebs-csi-controller-868598b64f-qn2lz   6/6     Running   0          11m
ebs-csi-node-fplxg                    3/3     Running   0          11m
ebs-csi-node-v6qwj                    3/3     Running   0          11m

安装 AWS LoadBalancer Controller 组件:

eksctl create iamserviceaccount \
  --cluster=LAB-1-30 \
  --region ap-northeast-1 \
  --namespace=kube-system \
  --name=aws-load-balancer-controller \
  --role-name AmazonEKSLoadBalancerControllerRole_130 \
  --attach-policy-arn=arn:aws:iam::112233445566:policy/AWSLoadBalancerControllerIAMPolicy \
  --approve

helm repo add eks https://aws.github.io/eks-charts
helm repo update eks
wget https://raw.githubusercontent.com/aws/eks-charts/master/stable/aws-load-balancer-controller/crds/crds.yaml
kubectl apply -f crds.yaml

helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
  -n kube-system \
  --set clusterName=LAB-1-30 \
  --set serviceAccount.create=false \
  --set serviceAccount.name=aws-load-balancer-controller  \
  --set region=ap-northeast-1

# 验证安装
kubectl get deployment -n kube-system aws-load-balancer-controller
NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
aws-load-balancer-controller   2/2     2            2           39s

至此,我们已经完成了 EKS 集群的配置。

安装 Easysearch 服务

本文中,将通过 AWS LoadBalancer 部署 Console 服务。首先,通过 Helm 将 Console 相关的模板文件拉取到本地,执行以下命令:

helm pull infinilabs/console
tar -zxvf console-0.2.0.tgz
cd console

目录结构如下:

[ec2-user@ip-10-0-0-84 console]$ tree
.
├── Chart.yaml
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── statefulset.yaml
└── values.yaml

我们需要修改 service.yamlvalues.yaml 中的部分配置:

# serivce.yaml
# 参考 AWS Load Balancer Controller 的文档,配置负载均衡器面向公网
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance
    service.beta.kubernetes.io/aws-load-balancer-subnets: subnet-11223344, subnet-55667788, subnet-9911223344

# values.yaml
# 使用 GP2 StorageClass,并指定 Service Type 为 LoadBalancer
service:
  type: LoadBalancer
storageClassName: gp2

使用 Helm 部署 console 服务:

kubectl create ns Easysearch
helm upgrade --install console . -f values.yaml -n Easysearch

# 检查是否创建了 Service 并获取负载均衡器的 DNS 地址
kubectl get svc -n Easysearch
NAME         TYPE           CL

USTER-IP       EXTERNAL-IP                                               PORT(S)             AGE
console      LoadBalancer   172.20.237.237   k8s-xxxx.elb.ap-northeast-1.amazonaws.com                 9000:32190/TCP      6h49m

接下来是创建 Easysearch 单节点集群服务。创建一个新的 values.yaml 文件并定义使用 GP2 类型的 StorageClass,如下:

cd ~
echo 'storageClassName: gp2' > values.yaml
cat << EOF | kubectl apply -n Easysearch -f -
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: Easysearch-ca-issuer
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: Easysearch-ca-certificate
spec:
  commonName: Easysearch-ca-certificate
  duration: 87600h0m0s
  isCA: true
  issuerRef:
    kind: Issuer
    name: Easysearch-ca-issuer
  privateKey:
    algorithm: ECDSA
    size: 256
  renewBefore: 2160h0m0s
  secretName: Easysearch-ca-secret
EOF
helm install Easysearch infinilabs/Easysearch -n Easysearch -f values.yaml

至此,我们已在 AWS EKS 平台上完成了 Easysearch 的部署。可以通过 Kubernetes 中的 Service DNS 地址在 Console 中验证连接到内部的 Easysearch 服务。本文中使用的地址为:Easysearch.Easysearch.svc.cluster.local:9200

也可以在 Easysearch 的 Pod 中使用命令进行连接验证:

kubectl exec -n Easysearch Easysearch-0 -it -- curl -ku 'admin:admin' https://Easysearch.Easysearch.svc.cluster.local:9200
{
  "name" : "Easysearch-0",
  "cluster_name" : "infinilabs",
  "cluster_uuid" : "fq3r_ZaHSFuZDjDtKyJY_w",
  "version" : {
    "distribution" : "Easysearch",
    "number" : "1.6.0",
    "distributor" : "INFINI Labs",
    "build_hash" : "e5d1ff9067b3dd696d52c61fbca1f8daed931fb7",
    "build_date" : "2023-09-22T00:55:32.292580Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.2",
    "minimum_wire_lucene_version" : "7.7.0",
    "minimum_lucene_index_compatibility_version" : "7.7.0"
  },
  "tagline" : "You Know, For Easy Search!"
}

总结

通过本文的实践操作,我们成功地在 AWS EKS 平台上部署了 Easysearch 服务,验证了其在云环境中的高效运行能力。从 EKS 集群的配置、存储和网络资源的准备,到最终的 Easysearch 部署与测试,整个过程展示了如何利用 AWS 提供的工具和服务,快速构建企业级搜索引擎解决方案。

通过这次部署,我们不仅了解了 Easysearch 在 Kubernetes 环境中的部署方法,还深入体验了 AWS EKS 平台的强大功能。未来,随着企业数据量的不断增长,结合云计算的弹性和容器化技术的优势,将会为企业的数据管理和搜索提供更加高效的解决方案。

参考文档

  1. AWS 命令行界面
  2. Helm
  3. eksctl
  4. Helm Chart 部署 Easysearch

关于 Easysearch 有奖征文活动

黑神话悟空

无论你是 Easysearch 的老用户,还是第一次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。

详情查看:Easysearch 征文活动

作者:韩旭,亚马逊云技术支持,亚马逊云科技技领云博主,目前专注于云计算开发和大数据领域。
原文:https://infinilabs.cn/blog/2024/deploy-easysearch-using-aws-eks/

Easysearch 新特性:写入限流功能介绍

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2631 次浏览 • 2024-07-17 14:52 • 来自相关话题

背景

在 Easysearch 的各种使用场景中,高写入吞吐量的场景占了很大一部分,由此也带来了一些使用上的问题,很多用户由于使用经验不足,对集群的写入压测进行的不够充分,不能很好的规划集群的写入量。

导致经常发生以下问题:

  • 写入吞吐量过大对内存影响巨大,引发节点 OOM,节点掉线问题。
  • 对 CPU 和内存的占用严重影响了其他的查询业务的响应。
  • 以及磁盘 IO 负载增加,挤占集群的网络带宽等问题。

之前就有某金融保险类客户遇到了因业务端写入量突然猛增导致数据节点不停的 Full GC,进而掉入了不停的掉线,上线,又掉线的恶性循环中。当时只能建议用户增加一个类似“挡板”的服务,在数据进入到集群之前进行拦截,对客户端写入进行干预限流:

这样做虽然有效,但是也增加了整个系统的部署复杂性,提高了运维成本。

根据客户的实际场景,Easysearch 从 1.8.0 版本开始引入了节点和 Shard 级别的限流功能,不用依赖第三方就可以限制写入压力,并在 1.8.2 版本增加了索引级别的写入限流。 注意:所有写入限流都是针对各数据节点的 Primary Shard 写入进行限流的,算上副本的话吞吐量要乘以 2。

限流示意图:

下面是限流前后相同数据节点的吞吐量和 CPU 对比:

测试环境:

ip       name   http          port version role master
10.0.0.3 node-3 10.0.0.3:9209 9303 1.8.0   dimr -
10.0.0.3 node-4 10.0.0.3:9210 9304 1.8.0   im   -
10.0.0.3 node-2 10.0.0.3:9208 9302 1.8.0   dimr -
10.0.0.3 node-1 10.0.0.3:9207 9301 1.8.0   dimr *

测试索引配置:

PUT test_0
{
  "settings": {
    "number_of_replicas": 1,
    "number_of_shards": 3
  }
}

压测工具:采用极限科技的 INFINI Loadgen 压测,这款压测工具使用简单,可以方便对任何支持 Rest 接口的库进行压测。

压测命令:

 ./loadgen-linux-amd64 -d 180 -c 10 -config loadgen-easy-1.8.yml

压测 180 秒,10 个并发,每个 bulk 请求 5000 条。

节点级别限流

通过 INFINI Console 监控指标可以看到,限流之前的某个数据节点,CPU 占用 10%,每秒写入 40000 条左右:

在 Cluster Settings 里配置,启用节点级别限流,限制每个节点的每秒最大写入 10000 条,并在默认的 1 秒间隔内进行重试,超过默认间隔后直接拒绝。

PUT _cluster/settings
{
  "transient": {
    "cluster.throttle.node.write": true,
    "cluster.throttle.node.write.max_requests": 10000,
    "cluster.throttle.node.write.action": "retry"
  }
}

限流后,CPU 占用降低了约 50%,算上副本一共 20000 条每秒:

Shard 级别限流

设置每个分片最大写入条数为 2000 条每秒

PUT _cluster/settings
{
  "transient": {
    "cluster.throttle.shard.write": true,
    "cluster.throttle.shard.write.max_requests": 2000,
    "cluster.throttle.shard.write.action": "retry"
  }
}

集群级别的监控,同样是只针对主 Shard。

从 Console 的监控指标可以看出,索引 test_0 的 Primary indexing 维持在 6000 左右,正好是 3 个主分片限制的 2000 的写入之和。

再看下数据节点监控,Total Shards 表示主分片和副本分片的写入总和即 4000,单看主分片的话,正好是 2000.

索引级别限流

有时,集群中可能某个索引的写入吞吐过大而影响了其他业务,也可以针对特定的索引配置写入限制。 可以在索引的 Settings 里设置当前索引每秒写入最大条数为 6000:

PUT test_0
{
  "settings": {
    "number_of_replicas": 1,
    "number_of_shards": 3,
    "index.throttle.write.max_requests": 6000,
    "index.throttle.write.action": "retry",
    "index.throttle.write.enable": true
  }
}

下图索引的 Primary indexing 在 6000 左右,表示索引的所有主分片的写入速度限制在了 6000。

总结

通过本次测试对比,可以看出限流的好处:

  1. 有效控制写入压力: 写入限流功能能够有效限制每个节点和每个 Shard 的写入吞吐量,防止因写入量过大而导致系统资源被过度消耗的问题。

  2. 降低系统资源占用: 在限流前,某数据节点的 CPU 占用率约为 10%。限流后,CPU 占用率显著降低至约 5%,减少了约 50%。这表明在高并发写入场景下,写入限流功能显著降低了系统的 CPU 负载。

  3. 提高系统稳定性: 通过控制写入吞吐量,避免了频繁的 Full GC 和节点掉线问题,从而提升了系统的整体稳定性和可靠性。

  4. 保障查询业务性能: 写入限流功能减少了写入操作对 CPU 和内存的占用,确保其他查询业务的响应性能不受影响。

综上所述,写入限流功能在高并发写入场景下表现出色,不仅有效控制了写入压力,还显著降低了系统资源占用,从而提高了系统的稳定性和查询业务的性能。

关于 Easysearch 有奖征文活动

黑神话悟空

无论你是 Easysearch 的老用户,还是第一次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。

详情查看:Easysearch 征文活动

作者:张磊

原文:https://infinilabs.cn/blog/2024/easysearch-new-feature-write-throttling-introduction/

天命人, 你在吗?快拿走你的《黑神话:悟空》游戏,去开启神话冒险!Easysearch 有奖征文活动来袭!

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2437 次浏览 • 2024-06-26 23:26 • 来自相关话题

第一章:神秘的召唤

在一个普通的早晨,INFINI Labs 的办公室里,阳光透过窗户洒进来,给每个人带来了一天的好心情。就在这时,办公室的公告板上突然出现了一张神秘的海报,上面写着:

“天命人, 你在吗?快拿走你的《黑神话:悟空》游戏,去开启神话冒险!”

黑神话:悟空海报

这张海报立刻吸引了小编的目光,心中升起了一股好奇心,这究竟是怎样的一个活动?而且,《黑神话:悟空》竟然作为奖品!这可是大家期待已久的国产大作!

第二章:拨开迷雾

《黑神话:悟空》 是一款基于《西游记》改编的中国神话动作角色扮演游戏,由中国游戏公司 Game Science 开发。游戏以其出色的画面和创新的玩法在全球范围内引起了广泛关注,是 2024 年最受期待的国产游戏大作,将于 8 月 20 日正式发售。

在游戏中,玩家将化身“天命之人”——孙悟空,踏上惊险刺激的西游冒险之旅。游戏不仅高度还原了《西游记》中的经典场景和角色,还融入了大量原创元素,带来全新的剧情体验。

第三章:踏上征途

作为“天命之人”,你将穿越重重险阻,挑战强大的妖魔鬼怪,探索神秘的古代遗迹,揭开传说背后的秘密。游戏中充满了紧张刺激的战斗场景和丰富多样的任务,让你能沉浸在这个神话般的世界中。

不要犹豫,加入我们,一起踏上征途,成为传说的一部分吧!

INFINI Labs 首期征文活动来袭!!!

无论你是 Easysearch 的老用户,还是第一次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。

征文主题

  1. 使用体验:分享你在学习和使用 Easysearch 的体验感受、反馈。
  2. 案例实践:分享你在工作使用 Easysearch 的案例和实践经验。
  3. 版本对比:对比不同版本的 Easysearch,聊聊各自的优劣和特点。
  4. 性能测评:对 Easysearch 的性能进行详细测评,展示其在各种使用场景下的表现。
  5. 功能解析:深入剖析 Easysearch 的独特功能,让更多人了解它的强大之处。
  6. 国产替代:探讨 Easysearch 在 Elasticsearch 国产替代中的重要意义及实战经验。

为了帮助首次了解 Easysearch 的小伙伴,我们还会提供技术支持,让你轻松上手,畅快写作。

第四章:创作你的传奇

无论你是哪个领域的爱好者,这次活动都是你展示才华的绝佳机会。拿起笔,写下你的故事,分享你与 Easysearch 的点滴,畅谈你对《黑神话:悟空》的期待。

我们期待着每一个参与者的精彩作品,也期待着与你一起在《黑神话:悟空》的世界中共赴一场史诗级的冒险!

活动时间:即日起至 8 月 20 日

参与方式:微信联系 INFINI Labs 小编(INFINI-Labs),请在加好友时备注【Easysearch 征文】字样。

联系方式

奖品设置

  • 一等奖:1 名,《黑神话:悟空》游戏数字豪华版
  • 二等奖:2 名,《黑神话:悟空》游戏数字标准版
  • 三等奖:若干名,INFINI Labs 定制礼品

拿起你的笔,登录 INFINI Labs 社区,开始你的征文之旅。你的故事,我们在这里等你!

活动补充说明

Easysearch 是什么?

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

征文时间

文章征集:即日起 - 8 月 15 日

文章评审:2024 年 8 月 16 日 - 8 月 19 日

获奖公示:2024 年 8 月 20 日

参与方式

添加 INFINI Labs 小助手微信(INFINI-Labs),进行文章投稿(文章形式不限,如:开源中国、CSDN、微信公众号、掘金、知乎、Markdown、Word、在线文档等)。 使用过程中遇到任何问题,欢迎随时反馈给小助手。

征文要求

  • 主题要求:围绕 Easysearch,包括但不限于使用心得、案例实践、功能解析、性能测评、数据迁移、容灾、安全、国产替代、我与 Easysearch 的故事等。
  • 文章标题:需包含 Easysearch 关键词,如:Easysearch 入门指南 xxx、如何使用 Easysearch xxx、Easysearch 助力 xxx 等。
  • 文章内容:正文字数建议 800 以上,且要求内容结构完整、文字通顺、代码规范、无错别字、尽量做到图文并茂。
  • 原创要求:提交的稿件需为原创作品,不得侵犯他人知识产权。
  • 加分项:有借鉴性、实用性、创新性。

所有提交投稿文章经由 INFINI Labs 征文组委会进行审核,最终分级别选出一批入围作品,并给予相应奖品。

评奖规则

入围文章排名,分为【组委会打分】和【互动拉票得分】

  • 组委会打分:100 分值,权重 60 %
    • 内容质量(40%):文章内容符合征文主题,具备原创性、独特性、高质量。
    • 创新性(20%):文章内容的创新性,鼓励投稿者用 Easysearch 去完成创造性、有挑战性的任务,并拿到一定的结果。
    • 实用性(20%):可以对社区其他用户来带来学习和帮助,获得实用的经验。
    • 清晰度(20%):整篇文章是否清晰的被叙述出来,有重点,排版美观,图文并茂。
  • 互动拉票得分:100 分值,权重 40%。根据阅读量、点赞量、收藏量三个指标聚合计算。
    • 阅读量:每 100 次阅读得 10 分,上限 50 分。
    • 点赞量:每个赞得 1 分,上限 30 分。
    • 收藏量:每个收藏得 2 分,上限 20 分。
  • 加权分数相等时,组委会得分高者排名优先。

说明:

  1. 征文将由参与者自行公开发布或提交 INFINI Labs 转发,发布后至评审前一天互动数据有效。
  2. 严禁刷量和作弊,比如短时间内异常增长的阅读量或点赞量,组委会有权对刷量和作弊文章取消评奖资格。
  3. 投稿者可以对评分规则提出疑问或建议,并根据反馈进行适当调整。

奖品设置

奖品分级别设置,根据文章综合评分由高到低排序,详细见下表。

奖项 人数 标准 奖品
一等奖 1 人 文章具有代表性及影响力,
综合评分由高到低
《黑神话:悟空》数字豪华版一套
二等奖 2 人 综合评分由高到低 《黑神话:悟空》数字标准版一套
三等奖 若干人 综合评分由高到低 咖啡杯 / 指甲套装

征文奖品

其他说明

  1. 文章文体不限,可以选择与 Easysearch 相关的任何内容。
  2. 文章必须原创,凡发现转载、抄袭等侵权行为,取消活动参与资格。
  3. 参加征文活动的文章作者拥有著作权,INFINI Labs 拥有使用权。
  4. 本次活动每位用户可投递多篇文章,但同一用户最终只能获奖一次。
  5. 本次活动最终解释权归 INFINI Labs 所有。

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

联系我们

原文:https://infinilabs.cn/blog/2024/easysearch-essay-competition-wukong/