【搜索客社区日报】第1890期 (2024-08-29)
社区日报 • Se7en 发表了文章 • 0 个评论 • 2876 次浏览 • 2024-08-29 13:22
https://mp.weixin.qq.com/s/p-muCZMhXjJ9XQgKxxYiqg
2.iLogtail 开源两周年:感恩遇见,畅想未来
https://mp.weixin.qq.com/s/RoFjoYlPLG1yOzDGc7vqIQ
3.讲真,OpenObserve 挺好用的!
https://mp.weixin.qq.com/s/pNliVYhA9-aYaxubPJ9FMg
4.B站监控2.0架构落地实践
https://mp.weixin.qq.com/s/dWH4csu4B2c5SaRj3Mmtew
编辑:Se7en
更多资讯:http://news.searchkit.cn
基于 INFINI Pizza 为 Hugo 静态站点添加搜索功能
默认分类 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 2935 次浏览 • 2024-08-28 21:52
![](https://infinilabs.cn/img/blog ... bg.png)
INFINI Pizza 是 INFINI Labs 即将发布的一个基于 Rust 编写的搜索引擎(即将完全开源),目前已经完成基本的搜索能力,并且基于 INFINI Pizza 的核心引擎,提供了一个 WASM 版本的超轻量级内核,可以很方便的嵌入到各类应用系统,比如网站,尤其是静态站点或者小型的博客系统等。
目前 Pizza 和 INFINI Labs 官网已经集成了 INFINI Pizza for WebAssembly,具体的搜索效果如下图:
![](https://infinilabs.cn/img/blog ... /1.png)
![](https://infinilabs.cn/img/blog ... /2.jpg)
打开上面的网站([https://infinilabs.cn](https://infinilabs.cn)),通过按下快捷 `s`即可调出搜索框,然后就可以体验到 INFINI Pizza 提供的搜索能力。值得特别提出的是,在搜索的过程你所有的操作都是在浏览器本地执行,也就是不会像传统的搜索实现方式那样,需要每次输入一个查询条件都会和后端的搜索服务器进行一次交互,相比之下, INFINI Pizza for WebAssembly 则是完全离线操作,即使断网,也能愉快的搜索。
废话不多说,接下来为大家介绍一下如何在你自己的站点来使用 INFINI Pizza for WebAssembly。
首先,INFINI Pizza for WebAssembly 是开源的,Github 地址在这里:[https://github.com/infinilabs/pizza-wasm](https://github.com/infinilabs/pizza-wasm)
编译好的 WASM 包在这里可以直接下载:[https://github.com/infinilabs/ ... n/pkg](https://github.com/infinilabs/ ... in/pkg)
```sh
➜ wasm git:(main) ✗ du -sh pkg/*
4.0K pkg/README.md
4.0K pkg/package.json
4.0K pkg/pizza_wasm.d.ts
4.0K pkg/pizza_wasm.js
12K pkg/pizza_wasm_bg.js
580K pkg/pizza_wasm_bg.wasm
4.0K pkg/pizza_wasm_bg.wasm.d.ts
256K pkg/pizza_wasm_bg.wasm.gz
```
可以看到,WASM 的包只有 500 多 KB,通过 Gzip 压缩之后,只有 200 多 KB,比较轻量级。
Pizza-WASM 是 INFINI Pizza 核心引擎的 WebAssembly 接口封装,只对外暴露了几个简单的访问接口,对于目前的前端搜索应用足够了,在 [https://github.com/infinilabs/ ... n/web](https://github.com/infinilabs/ ... in/web) 里面有一个非常简单的 WASM 方法调用的例子,可以简单进行了解。
当然,只是有 Pizza 的 WASM 还是不够的,我们如果要在现有的静态站点上添加搜索框的,还需要考虑数据怎么来,结果如何展现,所以针对这个场景,我们封装好了一个 Pizza-DocSearch 的一个项目,可以直接进一步简化使用,项目也是开源的,Github 地址是:[https://github.com/infinilabs/pizza-docsearch](https://github.com/infinilabs/pizza-docsearch)
由于示例项目里面默认已经将编译好的代码和样例上传了,我们直接下载这个源代码并本地进行功能预览:
```sh
➜ /tmp git clone https://github.com/infinilabs/pizza-docsearch.git
Cloning into 'pizza-docsearch'...
remote: Enumerating objects: 174, done.
remote: Counting objects: 100% (174/174), done.
remote: Compressing objects: 100% (112/112), done.
remote: Total 174 (delta 86), reused 147 (delta 59), pack-reused 0 (from 0)
Receiving objects: 100% (174/174), 941.94 KiB | 1.20 MiB/s, done.
Resolving deltas: 100% (86/86), done.
➜ /tmp cd pizza-docsearch/example/dist
➜ dist git:(main) python3 -m http.server 8083
Serving HTTP on :: port 8083 (http://[::]:8083/) ...
```
打开浏览器,并访问:http://localhost:8083,如下:
![](https://infinilabs.cn/img/blog ... /3.gif)
观察浏览器的网络请求,可以看到会加载示例的 index.json 数据:
![](https://infinilabs.cn/img/blog ... /4.png)
实际的情况,如果是我们自己的静态网站或者是博客,只有保证网站根目录有这个文件及相应的格式,即可快速将这个你看到的搜索功能集成到你自己的网站上去。OK,功能验证完毕了,我们开始集成到我们的站点吧。
Pizza/INFINI Labs 的官网,使用的 Hugo 来静态生成的,index.json 文件不需要手动生成,首先我们需要让 Hugo 生成 JSON 格式的内容,这个是 Hugo 自带的能力,我们需要修改 Hugo 项目的配置:
![](https://infinilabs.cn/img/blog ... /5.png)
将 outputs 参数这里新增一个 JSON 的输出,然后我们在主题的模版里面再定义一下 JSON 输出的格式模版:
![](https://infinilabs.cn/img/blog ... /6.png)
文本格式的内容如下,方便复制粘贴,保存文件名为 `index.json`:
```sh
{{- $index := slice -}}
{{- range where .Site.RegularPages.ByDate.Reverse "Type" "not in" (slice "page" "json") -}}
{{- $index = $index | append (dict "title" (.Title | plainify) "url" .Permalink "tags" .Params.tags "category" .Params.category "subcategory" .Params.subcategory "summary" (.Params.Summary | markdownify | plainify) "content" (.Content | markdownify | plainify)) -}}
{{- end -}}
{{- $index | jsonify -}}
```
OK,接下来就是将站点内每篇文章或者博客的元数据里面加上我们上面已经用到了的标签:
![](https://infinilabs.cn/img/blog ... /7.png)
OK, 启动 Hugo 站点:
```sh
| EN
-------------------+------
Pages | 181
Paginator pages | 5
Non-page files | 0
Static files | 110
Processed images | 0
Aliases | 52
Sitemaps | 1
Cleaned | 0
Built in 323 ms
Watching for changes in /Users/medcl/Documents/rust/pizza/website/{assets,content.en,static,themes}
Watching for config changes in /Users/medcl/Documents/rust/pizza/website/config.yaml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at //localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
```
打开 Hugo 的站点地址,并尝试访问 `http://localhost:1313/index.json`, 应该就可以访问到这个 JSON 文件了:
![](https://infinilabs.cn/img/blog ... /8.png)
至此,数据准备完毕,接下来我们集成前端搜索控件。
还记得我们之前从 Pizza-docsearch 下载的资源文件么,我们主要用到 `assets` 里面的 3 个文件:
```sh
/tmp/pizza-docsearch/example/dist
➜ dist git:(main) tree
.
├── assets
├── index-C1z1vz3D.css
├── index-D_gOo737.js
└── pizza_wasm_bg-BRCuviY_.wasm
├── index.html
└── index.json
1 directory, 5 files
➜ dist git:(main)
```
打开 index.html 文件,我们可以看到里面的内容如下:
![](https://infinilabs.cn/img/blog ... 13.png)
拷贝这个 assets 目录文件到我们的 Hugo 站点,位置如下:
![](https://infinilabs.cn/img/blog ... /9.png)
然后修改 Hugo 的主题模版,在所有页面的头模版 `html-head.html`里面增加一段代码来加载我们的 CSS 样式文件:
![](https://infinilabs.cn/img/blog ... 10.png)
然后继续修改 Hugo 的主题模版文件,在所有页面的页脚模版,增加一段代码来加载 JS 脚本文件:
![](https://infinilabs.cn/img/blog ... 11.png)
然后,在页面模版的适当位置,插入一下 Docsearch 的一段标签,用于放置搜索框,如图:
![](https://infinilabs.cn/img/blog ... 14.png)
至此,大功告成!
打开浏览器即可看到最终效果:
![](https://infinilabs.cn/img/blog ... 12.png)
最后,总结一下,借助 INFINI Pizza Docsearch 的 3 个小文件,只需 3 行代码,你可以在 5 分钟内为你的静态站点添加一个轻量级的离线搜索功能,快去试试吧。
相关链接:
- [Pizza](https://pizza.rs)
- [Pizza Wasm](https://github.com/infinilabs/pizza-wasm)
- [Pizza Docsearch](https://github.com/infinilabs/pizza-docsearch)
**交流群**
📢 对 Pizza,Rust,Wasm 搜索引擎感兴趣的朋友可以加这个群~👇,如果加不进群可微信添加小助手(INFINI-labs)拉您入群。
**关于极限科技(INFINI Labs)**
![INFINI Labs](https://infinilabs.cn/img/blog ... bs.png)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
官网:[https://infinilabs.cn](https://infinilabs.cn)
【搜索客社区日报】第1888期 (2024-08-27)
社区日报 • God_lockin 发表了文章 • 0 个评论 • 2708 次浏览 • 2024-08-28 21:00
https://mohamedsaidani34.medium.com/
2. 5分钟教会你拿filebeats发送nginx日志(需要梯子)
https://medium.com/elastictalk ... ea193
3. 聊聊elasticalert通知?(需要梯子)
https://medium.com/%40musabdog ... 32598
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
【搜索客社区日报】 第1889期 (2024-08-28)
社区日报 • kin122 发表了文章 • 0 个评论 • 2519 次浏览 • 2024-08-28 17:56
https://medium.com/%40jeevansa ... 67140
2.减少 95% 资源的向量搜索 | 使用云搜索的 DiskANN
https://mp.weixin.qq.com/s/ddAv8X4qHKgfgpBkavLCPA
3.使用 Elasticsearch 来RAG检索非英语文本。(搭梯)
https://medium.com/%40thongpra ... ff0cd
编辑:kin122
更多资讯:http://news.searchkit.cn
ES在匹配结果数据量较少时,使用sort排序占用资源吗?
Elasticsearch • Fred2000 回复了问题 • 2 人关注 • 1 个回复 • 2916 次浏览 • 2024-08-28 10:16
【搜索客社区日报】第1887期 (2024-08-26)
社区日报 • searchkit 发表了文章 • 0 个评论 • 2656 次浏览 • 2024-08-27 10:02
https://blog.csdn.net/xiaobing ... 97406
2、揭秘谷歌搜索排名的工作原理,深入理解搜索引擎的整体架构仍然至关重要。
https://www.infoq.cn/article/UNmjGDyGK5XBLIAEt7Ui
3、零基础5分钟上手亚马逊云科技核心云架构知识-创建NoSQL数据库
https://blog.csdn.net/m0_66628 ... 46634
4、【AI 大模型】使用 AI 大模型 编程 ② ( CodeGeeX 工具 | CodeGeeX 功能 | VSCode 安装使用 CodeGeeX | Tabby 工具 | Tabby 部署与使用 )
https://blog.csdn.net/shuliang ... 37850
5、【人工智能】Python融合机器学习、深度学习和微服务的创新之路
https://blog.csdn.net/2302_802 ... 25190
编辑:Muse
更多资讯:http://news.searchkit.cn
Easysearch 性能测试方法概要
Easysearch • INFINI Labs 小助手 发表了文章 • 0 个评论 • 2694 次浏览 • 2024-08-23 14:47
INFINI Easysearch
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本,完善和支持更多的企业级功能,优化搜索业务场景,以保证更佳的数据探索与分析体验。
Easysearch 的主要特点:
- 兼容 Elasticsearch,业务代码无需改动;可平滑迁移
- 企业级安全;更稳定可靠
- 企业级管理后台(多集群统一管理,实现运营标准化、自动化)
- 信创适配(全面适配国产 CPU/OS/服务器,支持国密算法)
Easysearch 快速体验,请参阅:
[Easysearch,地表最强,没有之一!](https://mp.weixin.qq.com/s/6kLF713Tu2fmSV3JWu12kg)
Loadgen
Loadgen 是 Elasticsearch 专属压测工具,用来对 Easysearch 或者网关进行压力测试。
Loadgen 的特点:
- 性能强劲
- 轻量级无依赖
- 支持模板化参数随机
- 支持高并发
- 支持压测端均衡流量控制
- 支持服务端返回值校验
当前最新版本为 1.26.1-598,下载链接如下:
[https://release.infinilabs.com/loadgen/stable/](https://release.infinilabs.com/loadgen/stable/)
下载并解压安装包后,得到二进制文件。
查看版本信息。
sh<br /> $ ./loadgen-linux-amd64 -v<br /> __ ___ _ ___ ___ __ __<br /> / / /___\/_\ / \/ _ \ /__\/\ \ \<br /> / / // ///_\\ / /\ / /_\//_\ / \/ /<br /> / /__/ \_// _ \/ /_// /_\\//__/ /\ /<br /> \____|___/\_/ \_/___,'\____/\__/\_\ \/<br /> <br /> [LOADGEN] A http load generator and testing suite.<br /> [LOADGEN] 1.26.1#598, 2024-08-14 04:50:03, 2024-12-31 10:10:10, 00f15fd86834d7ea539f6d66ee608e3915eef0e3<br /> loadgen 1.26.1 598 2024-08-14 04:50:03 +0000 UTC 2024-12-31 10:10:10 +0000 UTC 00f15fd86834d7ea539f6d66ee608e3915eef0e3<br />
Loadgen 测试
Loadgen 使用非常简单,下面演示如何进行查询压测。
- 建立索引,根据节点数调节分片数。
sh<br /> curl -X PUT -H "Content-Type: application/json" \<br /> -ku admin:xxx "<a href="https://localhost:9200/loadtest"" rel="nofollow" target="_blank">https://localhost:9200/loadtest"</a> -d'<br /> {<br /> "settings":{<br /> "number_of_shards":"3",<br /> "number_of_replicas":1,<br /> "translog":{<br /> "durability":"async"<br /> }<br /> }<br /> }'<br /> {"acknowledged":true,"shards_acknowledged":true,"index":"loadtest"}<br />
- 创建
loadgen.dsl.shawnyan
配置文件,定义查询
sh<br /> GET loadtest/_search<br /> {"query": {"term": {"id.keyword": {"value": $[[id]]}}}}<br />
- 执行压测,
-d
表示秒数,-c
表示并发数。
sh<br /> $ ES_ENDPOINT=https://localhost:9200 ES_USERNAME=admin ES_PASSWORD=xxx ./loadgen-linux-amd64 -run loadgen.dsl.shawnyan -d 10 -c 2<br /> __ ___ _ ___ ___ __ __<br /> / / /___\/_\ / \/ _ \ /__\/\ \ \<br /> / / // ///_\\ / /\ / /_\//_\ / \/ /<br /> / /__/ \_// _ \/ /_// /_\\//__/ /\ /<br /> \____|___/\_/ \_/___,'\____/\__/\_\ \/<br /> <br /> [LOADGEN] A http load generator and testing suite.<br /> [LOADGEN] 1.26.1#598, 2024-08-14 04:50:03, 2024-12-31 10:10:10, 00f15fd86834d7ea539f6d66ee608e3915eef0e3<br /> [08-19 16:43:27] [INF] [env.go:179] configuration auto reload enabled<br /> [08-19 16:43:27] [INF] [app.go:285] initializing loadgen, pid: 30792<br /> [08-19 16:43:27] [INF] [app.go:286] using config: /data/es/loadgen.yml<br /> [08-19 16:43:27] [INF] [module.go:155] started plugin: statsd<br /> [08-19 16:43:27] [INF] [module.go:161] all modules are started<br /> [08-19 16:43:27] [INF] [instance.go:78] workspace: /data/es/data/loadgen/nodes/cr1gabqr90cng685o2s0<br /> [08-19 16:43:27] [INF] [app.go:511] loadgen is up and running now.<br /> [08-19 16:43:27] [INF] [main.go:403] loading config: /data/es/loadgen.dsl.shawnyan<br /> <br /> 21108 requests finished in 9.79061677s, 1.08MB sent, 3.22MB received<br /> <br /> [Loadgen Client Metrics]<br /> Requests/sec: 2110.63<br /> Request Traffic/sec: 110.22KB<br /> Total Transfer/sec: 440.00KB<br /> Fastest Request: 680.198µs<br /> Slowest Request: 12.409574ms<br /> Status 200: 21108<br /> <br /> [Latency Metrics]<br /> 10000 samples of 21108 events<br /> Cumulative: 8.732205871s<br /> HMean: 851.869µs<br /> Avg.: 873.22µs<br /> p50: 839.498µs<br /> p75: 914.298µs<br /> p95: 1.059197ms<br /> p99: 1.327098ms<br /> p999: 4.83579ms<br /> Long 5%: 1.394411ms<br /> Short 5%: 724.226µs<br /> Max: 11.618475ms<br /> Min: 680.198µs<br /> Range: 10.938277ms<br /> StdDev: 289.216µs<br /> Rate/sec.: 2110.63<br /> <br /> [Latency Distribution]<br /> 680µs - 1.774ms ------------------------------<br /> 1.774ms - 2.867ms -<br /> 2.867ms - 3.961ms -<br /> 3.961ms - 5.055ms -<br /> 5.055ms - 6.149ms -<br /> 6.149ms - 7.243ms -<br /> 7.243ms - 8.336ms -<br /> 8.336ms - 9.43ms -<br /> 9.43ms - 10.524ms -<br /> 10.524ms - 11.618ms -<br /> <br /> <br /> [Estimated Server Metrics]<br /> Requests/sec: 2155.94<br /> Avg Req Time: 927.668µs<br /> Transfer/sec: 449.45KB<br />
更多内容请参阅文档:
[https://infinilabs.cn/docs/lat ... mark/](https://infinilabs.cn/docs/lat ... hmark/)
Rally
如果对 Elasticsearch 熟悉的同学,也可尝试使用 Rally 对 Easysearch 进行测试。
Rally 是 Elasticsearch 的基准测试框架。它可以帮助您完成以下任务:
- 建立索引,根据节点数调节分片数。
- 安装 Elasticsearch 集群以进行基准测试
- 跨 Elasticsearch 版本管理基准数据和规范
- 运行基准测试并记录结果
- 通过连接遥测设备来查找性能问题
- 比较性能结果
安装 Rally。
sh<br /> [root@easysearch /]# pip3 install esrally<br /> Requirement already satisfied: esrally in /usr/local/lib/python3.9/site-packages (2.11.0)<br /> Requirement already satisfied: py-cpuinfo==7.0.0 in /usr/local/lib/python3.9/site-packages (from esrally) (7.0.0)<br /> Requirement already satisfied: elastic-transport==8.4.1 in /usr/local/lib/python3.9/site-packages (from esrally) (8.4.1)<br /> Requirement already satisfied: google-resumable-media[requests]==1.1.0 in /usr/local/lib/python3.9/site-packages (from esrally) (1.1.0)<br /> Requirement already satisfied: urllib3==1.26.18 in /usr/local/lib/python3.9/site-packages (from esrally) (1.26.18)<br /> Requirement already satisfied: google-auth==1.22.1 in /usr/local/lib/python3.9/site-packages (from esrally) (1.22.1)<br /> Requirement already satisfied: thespian==3.10.1 in /usr/local/lib/python3.9/site-packages (from esrally) (3.10.1)<br /> Requirement already satisfied: jsonschema==3.1.1 in /usr/local/lib/python3.9/site-packages (from esrally) (3.1.1)<br /> Requirement already satisfied: markupsafe==2.0.1 in /usr/local/lib64/python3.9/site-packages (from esrally) (2.0.1)<br /> Requirement already satisfied: yappi==1.5.1 in /usr/local/lib64/python3.9/site-packages (from esrally) (1.5.1)<br /> Requirement already satisfied: psutil==5.9.4 in /usr/local/lib64/python3.9/site-packages (from esrally) (5.9.4)<br /> Requirement already satisfied: certifi in /usr/local/lib/python3.9/site-packages (from esrally) (2024.7.4)<br /> Requirement already satisfied: elasticsearch[async]==8.6.1 in /usr/local/lib/python3.9/site-packages (from esrally) (8.6.1)<br /> Requirement already satisfied: ijson==2.6.1 in /usr/local/lib/python3.9/site-packages (from esrally) (2.6.1)<br /> Requirement already satisfied: jinja2==3.1.4 in /usr/local/lib/python3.9/site-packages (from esrally) (3.1.4)<br /> Requirement already satisfied: requests<2.32.0 in /usr/local/lib/python3.9/site-packages (from esrally) (2.31.0)<br /> Requirement already satisfied: tabulate==0.8.9 in /usr/local/lib/python3.9/site-packages (from esrally) (0.8.9)<br /> Requirement already satisfied: zstandard==0.21.0 in /usr/local/lib64/python3.9/site-packages (from esrally) (0.21.0)<br /> Requirement already satisfied: docker==6.0.0 in /usr/local/lib/python3.9/site-packages (from esrally) (6.0.0)<br /> Requirement already satisfied: websocket-client>=0.32.0 in /usr/local/lib/python3.9/site-packages (from docker==6.0.0->esrally) (1.8.0)<br /> Requirement already satisfied: packaging>=14.0 in /usr/lib/python3.9/site-packages (from docker==6.0.0->esrally) (20.9)<br /> Requirement already satisfied: aiohttp<4,>=3 in /usr/local/lib64/python3.9/site-packages (from elasticsearch[async]==8.6.1->esrally) (3.10.4)<br /> Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.9/site-packages (from google-auth==1.22.1->esrally) (0.4.0)<br /> Requirement already satisfied: six>=1.9.0 in /usr/lib/python3.9/site-packages (from google-auth==1.22.1->esrally) (1.15.0)<br /> Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.9/site-packages (from google-auth==1.22.1->esrally) (4.9)<br /> Requirement already satisfied: setuptools>=40.3.0 in /usr/lib/python3.9/site-packages (from google-auth==1.22.1->esrally) (53.0.0)<br /> Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.9/site-packages (from google-auth==1.22.1->esrally) (4.2.4)<br /> Requirement already satisfied: google-crc32c<2.0dev,>=1.0 in /usr/local/lib64/python3.9/site-packages (from google-resumable-media[requests]==1.1.0->esrally) (1.5.0)<br /> Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.9/site-packages (from jsonschema==3.1.1->esrally) (24.2.0)<br /> Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.9/site-packages (from jsonschema==3.1.1->esrally) (8.2.0)<br /> Requirement already satisfied: pyrsistent>=0.14.0 in /usr/local/lib64/python3.9/site-packages (from jsonschema==3.1.1->esrally) (0.20.0)<br /> Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib64/python3.9/site-packages (from aiohttp<4,>=3->elasticsearch[async]==8.6.1->esrally) (1.9.4)<br /> Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib64/python3.9/site-packages (from aiohttp<4,>=3->elasticsearch[async]==8.6.1->esrally) (1.4.1)<br /> Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.9/site-packages (from aiohttp<4,>=3->elasticsearch[async]==8.6.1->esrally) (1.3.1)<br /> Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.9/site-packages (from aiohttp<4,>=3->elasticsearch[async]==8.6.1->esrally) (4.0.3)<br /> Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.9/site-packages (from aiohttp<4,>=3->elasticsearch[async]==8.6.1->esrally) (2.3.7)<br /> Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib64/python3.9/site-packages (from aiohttp<4,>=3->elasticsearch[async]==8.6.1->esrally) (6.0.5)<br /> Requirement already satisfied: pyparsing>=2.0.2 in /usr/lib/python3.9/site-packages (from packaging>=14.0->docker==6.0.0->esrally) (2.4.7)<br /> Requirement already satisfied: pyasn1<0.7.0,>=0.4.6 in /usr/local/lib/python3.9/site-packages (from pyasn1-modules>=0.2.1->google-auth==1.22.1->esrally) (0.6.0)<br /> Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/site-packages (from requests<2.32.0->esrally) (3.7)<br /> Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib64/python3.9/site-packages (from requests<2.32.0->esrally) (3.3.2)<br /> Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.9/site-packages (from importlib-metadata->jsonschema==3.1.1->esrally) (3.20.0)<br /> WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <a href="https://pip.pypa.io/warnings/venv" rel="nofollow" target="_blank">https://pip.pypa.io/warnings/venv</a><br /> [root@easysearch /]# esrally --version<br /> esrally 2.11.0<br /> [root@easysearch /]#<br />
关于 Rally 的更多内容,请参阅官方文档:
[https://esrally.readthedocs.io/en/stable/](https://esrally.readthedocs.io/en/stable/)
作者:少安事务所
原文:https://mp.weixin.qq.com/s/9eEH38kgsw4i150CJqyxvQ
【搜索客社区日报】第1886期 (2024-08-23)
社区日报 • Fred2000 发表了文章 • 0 个评论 • 2490 次浏览 • 2024-08-23 11:48
https://opensearch.org/blog/In ... ithm/
2、Elasticsearch 8 RAG 技术分享
https://mp.weixin.qq.com/s/-0vYPmMS2xZUcKkaq5TaQA
3、腾讯云Elasticsearch 优化Lucene性能:高性能缓存的读写锁解决方案
https://mp.weixin.qq.com/s/g-JPECyz3wP6A69Sj-EVVw
4、Easysearch 性能测试方法概要
https://mp.weixin.qq.com/s/9eEH38kgsw4i150CJqyxvQ
编辑:Fred
更多资讯:http://news.searchkit.cn
【搜索客社区日报】第1885期 (2024-08-21)
社区日报 • kin122 发表了文章 • 0 个评论 • 2667 次浏览 • 2024-08-21 16:15
https://cloud.tencent.com/deve ... 46232
2.LangChain 与 Elastic 合作,加入向量数据库和语义重排序功能以增强 RAG原创
https://cloud.tencent.com/deve ... 43581
3.RAG:如何与您的数据对话
https://cloud.tencent.com/deve ... 79569
编辑:kin122
更多资讯:http://news.searchkit.cn
【第3期】2024 搜索客 Meetup | Elasticsearch 的代码结构和写入查询流程的解读 - 下篇
Elasticsearch • searchkit 发表了文章 • 0 个评论 • 3304 次浏览 • 2024-08-21 13:00
本次活动由 搜索客社区、极限科技(INFINI Labs)联合举办,活动主题将深入探讨 Elasticsearch 的两个核心方面:代码结构以及写入和查询的关键流程。本次活动将为 Elasticsearch 初学者和有经验的用户提供宝贵的见解,欢迎大家报名参加、交流学习。
活动主题:Elasticsearch 的代码结构和写入查询流程的解读 - 下篇
活动时间:2024 年 8 月 28 日 19:00-20:00(周三)
活动形式:微信视频号(极限实验室)直播
报名方式:关注或扫码海报中的二维码进行预约
![](https://infinilabs.cn/img/blog ... /1.png)
嘉宾介绍
张磊,极限科技搜索引擎研发负责人,对 Elasticsearch 和 Lucene 源码比较熟悉,目前主要负责公司的 Easysearch 产品的研发以及客户服务工作。
主题摘要
本次分享将探讨 Elasticsearch 的代码结构及其写入和查询流程。内容包括:项目架构、核心模块、插件系统,以及文档索引和查询的各个阶段与分布式查询协调。
活动亮点
- 深入解析 Elasticsearch 代码结构:
- 项目的整体结构:了解 Elasticsearch 项目的组织方式。
- 核心模块及其职责:学习 Elasticsearch 的核心模块及其在系统中的具体角色。
- 插件系统的设计:探索 Elasticsearch 灵活的插件系统设计及其扩展方式。
- 项目的整体结构:了解 Elasticsearch 项目的组织方式。
- 详细解读 Elasticsearch 写入和查询流程:
- 文档索引过程的各个阶段:跟随文档从初始接收至最终存储的索引过程。
- 查询解析和执行的步骤:理解 Elasticsearch 中查询解析和执行的各个步骤。
- 分布式查询的协调过程:学习 Elasticsearch 如何在分布式架构中协调查询,以提供高效且准确的搜索结果。
参与有奖
直播中将设有福袋抽奖环节,参与就有机会获得 INFINI Labs 周边纪念品,包括 T 恤、鸭舌帽、咖啡杯、指甲刀套件等等(图片仅供参考,款式、颜色与尺码随机)。
![](https://infinilabs.cn/img/blog ... ts.png)
活动交流
本活动设有 Meetup 技术交流群,可添加小助手微信入群。
![](https://infinilabs.cn/img/comp ... at.jpg)
本次 Meetup 是深入了解 Elasticsearch 内部工作机制、提升使用技能的绝佳机会。不要错过!
Meetup 讲师招募
![](https://infinilabs.cn/img/blog ... ng.png)
搜索客社区 Meetup 的成功举办,离不开社区小伙伴的热情参与。目前社区讲师招募计划也在持续进行中,我们诚挚邀请各位技术大咖、行业精英踊跃提交演讲议题,与大家分享您的经验。
讲师报名链接:[http://cfp.searchkit.cn](http://cfp.searchkit.cn)
或扫描下方二维码,立刻报名成为讲师!
![](https://infinilabs.cn/img/blog ... de.jpg)
Meetup 活动聚焦 AI 与搜索领域的最新动态,以及数据实时搜索分析、向量检索、技术实践与案例分析、日志分析、安全等领域的深度探讨。
我们热切期待您的精彩分享!
往期回顾
- [【第 2 期】2024 搜索客 Meetup | Elasticsearch 的代码结构和写入查询流程的解读 - 上篇](https://mp.weixin.qq.com/s/oQNej6aDMzLp64_AKxSONw)
- [【第 1 期】2024 搜索客 Meetup | Easysearch 结合大模型实现 RAG](https://mp.weixin.qq.com/s/7fpPFGKltJASspmIaUqJMg)
关于 搜索客(SearchKit)社区
搜索客社区由 Elasticsearch 中文社区进行全新的品牌升级,以新的 Slogan:“搜索人自己的社区” 为宣言。汇集搜索领域最新动态、精选干货文章、精华讨论、文档资料、翻译与版本发布等,为广大搜索领域从业者提供更为丰富便捷的学习和交流平台。
社区官网:[https://searchkit.cn](https://searchkit.cn) 。
- 文档索引过程的各个阶段:跟随文档从初始接收至最终存储的索引过程。
Easysearch x 《黑神话悟空》有奖征文获奖结果公示
Easysearch • INFINI Labs 小助手 发表了文章 • 0 个评论 • 2404 次浏览 • 2024-08-20 13:34
随着《黑神话:悟空》游戏的正式发售,我们 INFINI Labs 组织的 Easysearch 有奖征文大赛也圆满落幕。本次征文活动自启动以来,收到了众多创作者的热情投稿。在此,我们衷心感谢每一位参与活动的作者,是你们的才华和热情让这次征文活动异彩纷呈。
经过专业评审团的认真评选,最终确定了以下获奖作品及作者,现予以公布:
| 奖项 | 作者 | 作品 | 奖品 |
| ------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------- |
| 一等奖 | AWS 加油站 | [玩转 Easysearch 语法](https://blog.csdn.net/weixin_3 ... 227001) | 《黑神话:悟空》数字豪华版一套 |
| 二等奖 | 杨帆 | [使用 Easysearch 打造企业内部知识问答系统](https://infinilabs.cn/blog/202 ... earch/) | 《黑神话:悟空》数字标准版一套 |
| 二等奖 | 李家兴 | [从 Elasticsearch 到 Easysearch:国产搜索型数据库的崛起与未来展望](https://infinilabs.cn/blog/202 ... bases/) | 《黑神话:悟空》数字标准版一套 |
| 三等奖 | 严少安 | [Easysearch,地表最强,没有之一!](https://www.modb.pro/db/1823222832453660672) | INFINI Labs 咖啡杯 / 指甲剪套装 |
| 三等奖 | 张磊 | [Easysearch 新特性:写入限流功能介绍](https://infinilabs.cn/blog/202 ... ction/) | INFINI Labs 咖啡杯 / 指甲剪套装 |
| 三等奖 | keep | [如何在 MacOS 环境下快速安装部署 Easysearch](https://blog.csdn.net/weixin_4 ... 238374) | INFINI Labs 咖啡杯 / 指甲剪套装 |
恭喜以上获奖作者,你们的作品不仅展现了 Easysearch 的强大功能,也为社区成员提供了宝贵的学习资源。我们将会通过小助手微信联系各位获奖者,安排奖品的发放。
同时,我们也要感谢所有参与本次征文活动的作者,你们的每一篇 Easysearch 投稿都是对社区的一份贡献。我们期待在未来的活动中再次与大家相遇。
请继续关注 INFINI Labs,我们将持续为大家带来更多优质的产品和精彩的活动。再次感谢大家的参与和支持!
如有疑问或想加入 Easysearch 用户交流群请联系我们小助手!
![小助手微信](https://infinilabs.cn/img/comp ... at.jpg)
附征文活动原文:
[天命人, 你在吗?快拿走你的《黑神话:悟空》游戏,去开启神话冒险!](https://infinilabs.cn/blog/202 ... ukong/)
关于极限科技(INFINI Labs)
![INFINI Labs](https://infinilabs.cn/img/blog ... bs.png)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
官网:[https://infinilabs.cn](https://infinilabs.cn)
【搜索客社区日报】第1884期 (2024-08-20)
社区日报 • God_lockin 发表了文章 • 0 个评论 • 2250 次浏览 • 2024-08-20 10:29
https://medium.com/%40rahul.fi ... 65ef8
2. 用terraform来管理grafana的告警(需要梯子)
https://medium.com/%40wadexu00 ... 36839
3. 用curator实现es的自动索引管理(需要梯子)
https://medium.com/%40parikshi ... a00c7
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
活动回顾 - 第2期 搜索客 Meetup 线上直播活动圆满结束,附 PPT 下载
活动 • searchkit 发表了文章 • 0 个评论 • 2617 次浏览 • 2024-08-17 17:44
2024 年 8 月 14 日,由搜索客社区和极限科技(INFINI Labs)联合举办的第 2 期线上 Meetup 技术交流直播活动圆满结束。本期 Meetup 直播活动吸引了超过 500+ 人次的技术爱好者参与,共同学习和交流了 Elasticsearch 源码结构、写入流程、插件开发、性能优化等。
主题:Elasticsearch 的代码结构和写入查询流程的解读
本期 Meetup 活动由极限科技搜索引擎研发负责人 张磊老师 为大家带来了主题为《Elasticsearch 的代码结构和写入查询流程的解读》精彩分享。
张磊老师首先对 ES 项目架构、核心模块、插件系统进行分析和解读,然后深入讲解了 ES 的写入流程,同时结合 ES 源代码进行 Demo 演示。以下为摘取 PPT 部分内容截图:
直播间的小伙伴对分享内容非常感兴趣,纷纷在评论区留言提问,下面摘取部分提问:
- 如何学习 ES 源码?
- 开发 ES 插件有什么需要注意的地方吗
- bulk 请求有没有请求大小或者文档数的优化参数?
- bulk 写入数据时,单次写入的条数一般限制到多少?
- 在大数据请求时,一直内存熔断,内存已经给到了 32GB,怎么排查是哪里的问题?
- es8.x 的 knn 和 os 的 knn 有些什么区别?
张磊老师从专业的角度热情耐心的一一进行了解答,获得了大家的点赞好评。
同时,在整个直播过程中,主持人进行了多轮激动人心的抽奖活动,为参会小伙伴带来了额外的惊喜,将活动气氛推向了高潮。
本期 Meetup 旨在为 ES 初学者和有经验的用户提供深入见解,随着活动的圆满结束,参会小伙伴们不仅收获和提升在 ES 使用和开发方面的能力,还共同推动了技术的进步和社区的发展。
最后感谢大家的参与和支持,让我们共同期待下一次 搜索客 Meetup 活动带来更多的精彩内容!
本期 Meetup 的 PPT 下载
本期 PPT 下载的链接:https://searchkit.cn/slides/326
本期 Meetup 视频回放
扫码关注极限实验室视频号查看直播回放,或者扫码关注极限实验室 B 站 账号,可查看本期 Meetup 活动视频。我们也会在视频号、B 站持续更新最新技术视频,欢迎通过点赞、投币,收藏,三连来支持我们。
![](https://elasticsearch.cn/uploa ... 44.png)
Meetup 活动讲师招募
![讲师招募](https://infinilabs.cn/img/blog ... ng.png)
搜索客社区 Meetup 的成功举办,离不开社区小伙伴的热情参与。目前社区讲师招募计划也在持续进行中,我们诚挚邀请各位技术大咖、行业精英踊跃提交演讲议题,与大家分享您的经验。
讲师报名链接:[http://cfp.searchkit.cn](http://cfp.searchkit.cn)
或扫描下方二维码,立刻报名成为讲师!
![](https://elasticsearch.cn/uploa ... fe.png)
Meetup 活动聚焦 AI 与搜索领域的最新动态,以及数据实时搜索分析、向量检索、技术实践与案例分析、日志分析、安全等领域的深度探讨。
我们热切期待您的精彩分享!
关于 搜索客(SearchKit)社区
搜索客社区由 Elasticsearch 中文社区进行全新的品牌升级,以新的 Slogan:“搜索人自己的社区” 为宣言。汇集搜索领域最新动态、精选干货文章、精华讨论、文档资料、翻译与版本发布等,为广大搜索领域从业者提供更为丰富便捷的学习和交流平台。社区官网:[https://searchkit.cn](https://searchkit.cn) 。
关于极限科技(INFINI Labs)
![INFINI Labs](https://infinilabs.cn/img/blog ... bs.png)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
官网:[https://infinilabs.cn](https://infinilabs.cn)
如何在 MacOS 环境下快速安装部署 Easysearch
Easysearch • INFINI Labs 小助手 发表了文章 • 0 个评论 • 2575 次浏览 • 2024-08-17 14:56
1、什么是 Easysearch
![](https://infinilabs.cn/img/blog ... p2.png)
Easysearch 是极限科技研发的一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。 同时也是一款具备自主可控的分布式近实时搜索型数据库产品,具备高性能、高可用、弹性伸缩、高安全性等特性,具备支持丰富的个性化搜索及聚合分析能力,可部署在物理机、虚拟机、容器、私有云和公有云,能承载 PB 级别的海量业务数据,为金融核心系统、运营商、制造业和政企业务系统提供安全、稳定、可靠的快速检索和实时数据探索分析能力,可满足不同业务场景的各项复杂需求。
2、前期准备
在安装 Easysearch 之前,确保您的 MacOS 系统符合以下要求:
- MacOS 操作系统版本应为最新或推荐稳定版本。
- 确保系统上已安装 Java 运行环境,因为 Easysearch 是基于 Java 开发的。
3、下载 Easysearch
打开浏览器,访问 [Easysearch 官方下载页面](https://infinilabs.cn/download/?product=easysearch)。
找到 MacOS 版本安装包,然后根据自己电脑 CPU 架构选择对应的 Easysearch 安装包。我自己的电脑是 Intel X86 架构,直接选择默认的 amd64,点击下载即可。如果你的电脑是 Apple 的自己的 M 系列芯片,请选择 arm64 版本安装包。
4、安装 Easysearch
打开终端(Terminal)并导航到下载目录,找到 Easysearch 的压缩包,然后双击解压到您选择的目录。或者使用以下命令解压文件:
bash<br /> unzip ./easysearch-1.8.3-265-mac-amd64.zip<br />
5、启动 Easysearch
- 执行初始化脚本:
由于 Easysearch 默认自带了安全模块,所以在启动之前需要先执行初始化脚本,脚本里会自动帮我们处理好 Easysearch 安全证书、下载基本的 plugins 插件以及初始用户名和密码等,方便省心。
bash<br /> cd ./easysearch-1.8.3-265-mac-amd64 && bin/initialize.sh<br />
执行过程中遇到 [y/N] 询问,输入 y 即可。最后执行完初始化脚本之后,我们可以在输出的 log 日志中看到 easysearch 的访问用户名和密码,需要注意的是,这个用户名和密码需要自己保存好。 如下图所示:
- 启动 Easysearch:
使用以下命令启动 Easysearch:
bash<br /> ./bin/easysearch<br />
启动后,Easysearch 将在终端中输出运行日志,您可以在此查看启动过程中的详细信息。
6、验证安装
- 检查运行状态:
打开浏览器,访问<a href="https://localhost:9200" rel="nofollow" target="_blank">https://localhost:9200</a>
,输入上面提到的用户名密码,如果您看到类似以下的 JSON 响应,说明 Easysearch 已成功启动:
- 检查集群健康状况:
在浏览器中输入https:/localhost:9200/_cluster/health?pretty
或者在终端中执行以下命令来检查集群的健康状况:
bash<br /> curl -ku admin:4395c2f67208ca5ad7de <a href="https://localhost:9200/_cluster/health?pretty"" rel="nofollow" target="_blank">https://localhost:9200/_cluste ... ot%3B</a><br />
这将返回集群的详细健康信息,status
为 green 表示集群状态正常。如下图所示:
7、总结
通过上述步骤,可以轻松地在 MacOS 环境下安装和部署 Easysearch,享受它带来的强大功能和便捷体验。Easysearch 作为 Elasticsearch 的替代产品,不仅在功能上保持了高效和稳定,还进一步优化了搜索业务场景,使其更适合企业级应用。现在,您可以进一步配置集群,开始索引数据,并探索 Easysearch 提供的强大搜索和分析功能。建议参考 [官网文档](https://infinilabs.cn/docs/lat ... rview/),深入了解并实践更多高级功能。
关于 Easysearch 有奖征文活动
![黑神话悟空](https://infinilabs.cn/img/blog ... er.png)
无论你是 Easysearch 的老用户,还是第一次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。
详情查看:[Easysearch 征文活动](https://infinilabs.cn/blog/202 ... ukong/)
作者:Keep simple
原文:https://blog.csdn.net/weixin_4 ... 38374
- 执行初始化脚本: