登录 注册
自动化与工作流开发者工具教育与学习 circeelasticsearchhacktoberfesthttpreactive-streamsrest-api
1,638
Stars
685
Forks
67
Watchers
10
Open Issues
Apache-2.0
许可证
Scala
语言
2013-06-10
创建时间
2026-11-11
最近更新

项目能做什么

elastic4s 解决了官方 Java 客户端在 Scala 中语法冗长、类型体验不佳的问题。它是专为 Scala 打造的响应式、非阻塞 Elasticsearch HTTP 客户端,提供类型安全且简洁的 DSL;原生支持 Scala 集合、Future 与常见 JSON 库(如 Circe、PlayJson),可在编译期捕获错误并安全复用请求。
来源:AI 基于仓库事实生成 · 内容以仓库实际 README 为准

使用说明 查看原始 README 原仓库文档

中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# elastic4s - Elasticsearch Scala Client

[![build](https://github.com/Philippus/elastic4s/workflows/build/badge.svg)](https://github.com/Philippus/elastic4s/actions/workflows/build.yml?query=workflow%3Abuild+branch%3Amain)
![Current Version](https://img.shields.io/badge/version-9.5.1-brightgreen.svg?style=flat "9.5.1")
[![Scala Steward badge](https://img.shields.io/badge/Scala_Steward-helping-blue.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAMAAAARSr4IAAAAVFBMVEUAAACHjojlOy5NWlrKzcYRKjGFjIbp293YycuLa3pYY2LSqql4f3pCUFTgSjNodYRmcXUsPD/NTTbjRS+2jomhgnzNc223cGvZS0HaSD0XLjbaSjElhIr+AAAAAXRSTlMAQObYZgAAAHlJREFUCNdNyosOwyAIhWHAQS1Vt7a77/3fcxxdmv0xwmckutAR1nkm4ggbyEcg/wWmlGLDAA3oL50xi6fk5ffZ3E2E3QfZDCcCN2YtbEWZt+Drc6u6rlqv7Uk0LdKqqr5rk2UCRXOk0vmQKGfc94nOJyQjouF9H/wCc9gECEYfONoAAAAASUVORK5CYII=)](https://scala-steward.org)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat "Apache 2.0")](LICENSE)

**This is a community project - PRs will be accepted and releases published by the maintainer**

Elastic4s is a concise, idiomatic, reactive, type safe Scala client for Elasticsearch. The official Elasticsearch Java client can of course be used in Scala, but due to Java's syntax it is more verbose and it naturally doesn't support classes in the core Scala core library nor Scala idioms such as typeclass support.

Elastic4s's DSL allows you to construct your requests programmatically, with syntactic and semantic errors manifested at compile time, and uses standard Scala futures to enable you to easily integrate into an asynchronous workflow. The aim of the DSL is that requests are written in a builder-like way, while staying broadly similar to the Java API or Rest API. Each request is an immutable object, so you can create requests and safely reuse them, or further copy them for derived requests. Because each request is strongly typed your IDE or editor can use the type information to show you what operations are available for any request type.

Elastic4s supports Scala collections so you don't have to do tedious conversions from your Scala domain classes into Java collections. It also allows you to index and read classes directly using typeclasses so you don't have to set fields or json documents manually. These typeclasses are generated using your favourite json library - modules exist for Jackson, Circe, Json4s, PlayJson and Spray Json. The client also uses standard Scala durations to avoid the use of strings or primitives for duration lengths.

#### Key points

* Type safe concise DSL
* Integrates with standard Scala futures or other effects libraries
* Uses Scala collections library over Java collections
* Returns `Option` where the java methods would return null
* Uses Scala `Duration`s instead of strings/longs for time values
* Supports typeclasses for indexing, updating, and search backed by Jackson, Circe, Json4s, PlayJson and Spray Json implementations
* Supports Java and Scala HTTP clients s
阅读完整原文

项目深度分析 AI 生成

企业级 OpenSearch / 新版 ES 兼容支持与商业维护服务

产品构想针对企业在 Elastic 商业协议变更后转向 OpenSearch 的现状,提供 elastic4s-opensearch 定制维护版本、持续升级维护(LTS)及紧急 Bug 修复 SLA。
核心功能深度兼容 OpenSearch 2.x/3.x 特性、长期维护分支(LTS)、企业安全漏洞优先修复补丁、响应式 SLA 保证。
目标用户正在从 Elasticsearch 迁移至 OpenSearch 或维护多套集群的 Scala 技术栈企业。
难度/周期中等 · 1-3 个月 · 成本:极低(主要为维护者个人时间及自动化集成测试成本)
收费模式年度企业商业支持订阅(Support Contract)或双周响应 SLA 订阅。
竞争风险OpenSearch 官方或社区可能推出官方 Scala 客户端,导致市场替代;企业采购周期较长。
依据 数据支持的判断

基于 Elastic4s 的企业级可观测性与性能诊断扩展套件

产品构想构建与 OpenTelemetry、Prometheus 深度集成的商用插件,针对 Scala 异步搜索请求提供端到端追踪、慢查询自动告警和索引性能分析。
核心功能自动注入 W3C TraceContext、针对 Circe/Jackson 序列化性能监控、慢请求拓扑透视、基于 DSL 的查询优化建议。
目标用户高并发搜索场景下的 Scala 后端团队、SRE 团队及系统架构师。
难度/周期较高 · 2-4 个月 · 成本:低(需自行搭建多节点高负载 ES/OpenSearch 测试集群进行压测)
收费模式商业源码授权(Source-available)或按节点/请求量计费的监控中间件。
竞争风险企业可直接通过通用 OpenTelemetry Java Agent 获得部分指标,侵入式 DSL 插件付费意愿需进一步验证。
依据 AI推测

Elasticsearch & Scala 搜索引擎架构调优与培训咨询

产品构想为重度使用 Elastic4s 的企业提供定制化咨询服务,包括索引结构建模、DSL 查询优化、Scala 反应式流与背压处理优化等。
核心功能集群调优审查、Elastic4s 反应式写入背压方案设计、DSL 查询防坑指南、企业团队内训。
目标用户存在搜索性能瓶颈、数据导入高延迟的中大型 Scala 企业客户。
难度/周期低 · 即时(1-2 周内可交付初版方案) · 成本:极低(主要是专家工时投入)
收费模式按人天或项目包收费的技术咨询费、企业培训费。
竞争风险Scala 生态整体相对小众,纯咨询业务难以规模化扩张。
依据 已验证事实
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心

竞品与相似项目 GitHub Search 真实检索

项目中文简介Stars语言
circe/circe 中文介绍暂未生成
Yet another JSON library for Scala
2,541 Scala
pauljamescleary/scala-pet-store 中文介绍暂未生成
An implementation of the java pet store using FP techniques
1,076 Scala
plokhotnyuk/jsoniter-scala 中文介绍暂未生成
Scala macros for compile-time generation of safe and ultra-f
817 Scala
jwt-scala/jwt-scala 中文介绍暂未生成
JWT support for Scala. Bonus extensions for Play, Play JSON,
679 Scala
emacs-circe/circe 中文介绍暂未生成
Circe, a Client for IRC in Emacs
446 Emacs Lisp
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。

项目优势与风险

技术成熟度创建于 2013-06-10,近 30 天仍在推送,发布过 76 个 Release
社区活跃Star 1,638 / Fork 685 / Issue 10(数据支持,可自行核实)
许可证Apache-2.0
主要风险上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价

安装与使用

快速开始(以仓库 README 为准)
git clone https://github.com/Philippus/elastic4s.git
cd elastic4s
docker compose up -d   # 或参考 README 中的 docker run 命令
阅读原仓库文档
术语说明:Docker=应用容器(把程序和依赖打包运行);API Key=调用外部服务的密钥;Git Clone=把仓库代码下载到本地。常见错误:API Key 未配置 / 端口占用 / 数据库连接失败,多数项目在 README 的 Troubleshooting 章节有说明。