{"id":13601308,"url":"https://github.com/gottingen/kumo-search","last_synced_at":"2026-01-18T04:24:45.756Z","repository":{"id":154168274,"uuid":"622488321","full_name":"gottingen/kumo-search","owner":"gottingen","description":"docs for search system and ai infra","archived":false,"fork":false,"pushed_at":"2024-07-16T12:00:46.000Z","size":185448,"stargazers_count":218,"open_issues_count":0,"forks_count":22,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-11T04:34:03.237Z","etag":null,"topics":["ai","deep-learning","inference-engine","neural-network","performance","python","search-engine","tensorflow","tensorflow2"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gottingen.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-02T09:10:46.000Z","updated_at":"2025-04-01T07:32:35.000Z","dependencies_parsed_at":"2024-11-07T04:42:35.328Z","dependency_job_id":null,"html_url":"https://github.com/gottingen/kumo-search","commit_stats":null,"previous_names":["gottingen/kumo-search"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gottingen/kumo-search","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gottingen%2Fkumo-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gottingen%2Fkumo-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gottingen%2Fkumo-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gottingen%2Fkumo-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gottingen","download_url":"https://codeload.github.com/gottingen/kumo-search/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gottingen%2Fkumo-search/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28529526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","deep-learning","inference-engine","neural-network","performance","python","search-engine","tensorflow","tensorflow2"],"created_at":"2024-08-01T18:01:00.241Z","updated_at":"2026-01-18T04:24:45.741Z","avatar_url":"https://github.com/gottingen.png","language":null,"funding_links":[],"categories":["ai"],"sub_categories":[],"readme":"![][50]\n\n\u003cp align=\"center\"\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e|\u0026nbsp; \u003c/font\u003e\u003c/a\u003e\n    \u003ca href=\"docs/product.md\"\u003e\u003cfont face=\"黑体\" color=#0099fc size=4\u003e应用\u003c/font\u003e\u003c/a\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e \u0026nbsp;-\u0026nbsp; \u003c/font\u003e\u003c/a\u003e\n    \u003ca href=\"docs/install.md\"\u003e\u003cfont face=\"黑体\" color=#0099fc size=4\u003e安装\u003c/font\u003e\u003c/a\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e \u0026nbsp;-\u0026nbsp; \u003c/font\u003e\u003c/a\u003e\n    \u003ca href=\"docs/develop.md\"\u003e\u003cfont face=\"黑体\" color=#0099fc size=4\u003e开发\u003c/font\u003e\u003c/a\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e \u0026nbsp;-\u0026nbsp; \u003c/font\u003e\u003c/a\u003e\n    \u003ca href=\"docs/docs.md\"\u003e\u003cfont face=\"黑体\" color=#0099fc size=4\u003e文档\u003c/font\u003e\u003c/a\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e \u0026nbsp;-\u0026nbsp; \u003c/font\u003e\u003c/a\u003e\n    \u003ca href=\"docs/lecture.md\"\u003e\u003cfont face=\"黑体\" color=#0099fc size=4\u003e深度学习\u003c/font\u003e\u003c/a\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e \u0026nbsp;-\u0026nbsp; \u003c/font\u003e\u003c/a\u003e\n    \u003ca href=\"docs/faq/faq.md\"\u003e\u003cfont face=\"黑体\" color=#0099fc size=4\u003eFAQ\u003c/font\u003e\u003c/a\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e \u0026nbsp;-\u003c/font\u003e\u003c/a\u003e\n    \u003ca href=\"docs/tips/tips.md\"\u003e\u003cfont face=\"黑体\" color=#0099fc size=4\u003eTIPS\u003c/font\u003e\u003c/a\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e \u0026nbsp;-\u003c/font\u003e\u003c/a\u003e\n    \u003ca href=\"docs/lecture.md\"\u003e\u003cfont face=\"黑体\" color=#0099fc size=4\u003eEA半小时\u003c/font\u003e\u003c/a\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e \u0026nbsp;-\u003c/font\u003e\u003c/a\u003e\n    \u003ca href=\"docs/lecture.md\"\u003e\u003cfont face=\"黑体\" color=#0099fc size=4\u003e技术专题\u003c/font\u003e\u003c/a\u003e\n    \u003ca\u003e \u003cfont face=\"黑体\" color=#6628ff size=4\u003e \u0026nbsp;|\u0026nbsp; \u003c/font\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# 端到端搜索\n\n`kumo search`\n是一个端到端搜索引擎框架，支持全文检索、倒排索引、正排索引、排序、缓存、索引分层、干预系统、特征收集、离线计算、存储系统等功能。`kumo search`\n运行在 `EA`(Elastic automic infrastructure architecture)\n平台上，支持在多机房、多集群上实现`工程自动化`、`服务治理`、`实时数据`、`服务降级与容灾`等功能。\n\n随着互联网的发展，全网搜索已经不再是获取信息的唯一途径。很多垂直的信息服务，如电商、社交、新闻等，都有自己的搜索引擎。\n这些搜索引擎的特点是：数据量中等，业务复杂，用户体验要求高。这些搜索引擎的开发，需要大量的工程和算法支持。`kumo search`旨在\n提供一套开箱即用的搜索引擎框架，帮助用户快速搭建自己的搜索引擎。在这个框架上，用户可以通过项目内的AOT编译器，用\n`python`编写业务逻辑，框架会自动生成`c++`代码，并生成二进制动态库，动态更新到搜索引擎中。从而实现搜索引擎的快速迭代。\n\n# 功能展示\n\n![][51]\n\n# 项目概览\n\n## 基础库项目\n\n| 序号 | 项目名                   | 说明                                        | 说明                                 |\n|:---|:----------------------|:------------------------------------------|:-----------------------------------|\n| 1  | [collie][1]           | 引用外部header only library 如jason，toml等，统一管理 |                                    |\n| 2  | [turbo][2]            | hash，log，容器类，字符串相关操作                      |                                    |\n| 3  | [melon][3]            | rpc通信                                     |                                    |\n| 4  | [alkaid][4]           | 文件系统封装、本地文件，hdfs，s3等                      | 文件系统统一api，zlib，lz4，zst unified api |\n| 5  | [mizar][5]            | 基于rocksdb，toplingdb存储引擎内核                 | 待开发wisekey功能，暂时先用rocksdb官方版本       |\n| 6  | alioth玉衡              | 表格内存                                      | 开发中                                |\n| 7  | megrez天权              | 数据集读写                                     | hdf5 cvs bin已完成，待封装高级c++api        |\n| 8  | [phekda][8]           | 统一向量引擎访问api UnifiedIndex，简化接口             | 支持snapshot，过滤插件                    |\n| 9  | merak天璇               | 综合搜索引擎内核                                  | 待开发                                |\n| 10 | dubhe 天枢              | nlp内核                                     | 待开发                                |\n| 11 | [flare][11]           | gpu、cpu高维张量计算，等计算                         |                                    |\n| 12 | [theia][12]           | 基于opengl图形图像显示，服务端不可用（无显示设备）              |                                    |\n| 13 | [dwarf][13]           | jupyter协议c++内核                            |                                    |\n| 14 | [exodus][14]          | hercules and other jupyter应用              | 完成                                 |\n| 15 | [hercules][15]        | python aot编译器                             |                                    |\n| 16 | [carbin][16]          | c++包管理器，cmake生成器                          | 完成                                 |\n| 17 | [carbin-template][17] | cmake模板库                                  | 完成                                 |\n| 18 | [carbin-recipes][18]  | carbin recipes 依赖库自定义配置                   | 完成                                 |\n| 18 | hadar                 | suggest 搜索建议服务 内核                         | 接近完成，商用不开源                         |\n| 19 | [neptune][19]         | ea 前端服务                                   | 开发中                                |\n\n## kumo search 服务项目\n\n| 序号 | 项目名          | 说明                                  | 进度        |\n|:---|:-------------|:------------------------------------|:----------|\n| 1  | [sirius][31] | EA元数据服务器 服务发现，全局时钟服务，全局配置服务， 全局id服务 | 完成        |\n| 2  | polaris      | 向量引擎单机服务                            | 完成        |\n| 3  | elnath       | 综合搜索引单机服务                           | 开发中       |\n| 4  | vega         | 向量引擎数据库集群版                          | 完成 商用不开源  |\n| 5  | arcturus     | 综合搜索引擎集群版                           | 开发中 商用不开源 |\n| 6  | pollux       | 综合引擎业务控制台                           | 开发中 商用不开源 |\n| 7  | capella      | ltr排序服务                             | 开发中 商用不开源 |\n| 8  | aldebaran    | suggest搜索建议服务集群                     | 开发中 商用不开源 |\n| 9  | nunki        | nlp服务                               | 开发中 商用不开源 |\n\n# [EA半小时](docs/halfanhour.md)\n\n**半小时系列, 关注基于`EA`基础设施快速搭建企业级应用服务，侧重实际操作，快速上手，快速开发，快速部署，快速迭代。**\n\n* [a001-hala-ea](docs/half/a001-hala-ea.md) - 基础环境安装，使用carbin创建项目\n* [a002-hala-ea](docs/half/a002-hala-ea.md) - 创建一个c++应用，在cmake创建库并使用\n* [a003-hala-ea](docs/half/a003-hala-ea.md) - 创建一个c++库，使用googletest进行单元测试\n* [a004-hala-restful](docs/half/a004-hala-restful.md) - 使用melon库, 创建一个restful服务\n* [a005-hala-echo](docs/half/a005-hala-echo.md) - 使用melon库, 创建一个echo服务\n* [a006-hala-vue](docs/half/a006-hala-vue.md) - 创建一个cache服务，并提供浏览器访问界面\n* [a007-hala-vue-ext](docs/half/a007-hala-vue-ext.md) - cache服务源码解读\n* [a008-hala-kv](docs/half/a008-hala-kv.md) - 单机kv服务完整实现\n* [a009-hala-dkv](docs/half/a009-hala-dkv.md) - 分布式kv服务-1\n* [a010-hala-dkv](docs/half/a010-hala-dkv.md) - 分布式kv服务-2 服务管理\n\n# [搜索架构之旅](https://juejin.cn/user/42219472170896/columns)\n\n**本专题主要介绍搜索引擎的基础知识，以及随着搜索技术和搜索业务的发展，搜索架构的演进，升级和设计，以及背后的技术原理和实现。\n**\n\n## 走近AI：向量检索系列\n\n* [一 向量检索为何受到工业界和开发者青睐？](https://juejin.cn/post/7381372851121831974?searchId=20240619101012ED67E7AC3C349325CB2F)\n\n# 基础环境与CI/CD\n\n`EA`是服务端应用的基础架构，`EA`目前支持`centos`和`ubuntu`两种操作系统，`mac`系统目前在开发中， 尽最大可能支持`mac`\n系统。但目前并没有\n尝试，为方便编译和ide开发，后续部分功能可能进行尝试兼容。基础环境部署参见[安装与使用](docs/inf/inf.md)\n\n`EA`体系的`cicd`使用[carbin][4]工具进行管理。`carbin`是一个`c++`包管理器，`cmake`生成器，`cicd`工具。`carbin`可以下载第三方依赖库，\n生成`cmake`构建系统，进行工程编译和部署。`carbin`的使用参见[carbin docs](https://carbin.readthedocs.io/zh-cn/latest/)\n\n|       | carbin        | conda       | cmake   | CPM     | conan         | bazel       |\n|-------|---------------|-------------|---------|---------|---------------|-------------|\n| 使用复杂度 | easy          | middle      | hard    | middle  | hard          | hard        |\n| 安装难度  | pip easy      | binary easy | NA easy | cmake   | pip easy      | binary hard |\n| 依赖模式  | source/binary | binary      | source  | source  | source/binary | source      |\n| 依赖树   | support       | support     | support | support | support       | support     |\n| 本地源码  | support       | NA          | support | support | NA            | support     |\n| 兼容性   | good          | middle      | good    | good    | good          | poor        |\n| 速度    | good          | middle      | poor    | poor    | good          | poor        |\n|       |               |             |         |         |               |             |\n\nconda是一款不错的管理工具，没有选择conda，是因为conda的编译依赖项比较复杂，而且编译选项经常会出现问题，不太适合c++工程的编译。\ncmake自带的管理工具，不太适合大型工程的管理，每次重新编译项目可能导致重新下载依赖库，编译时间过长。CPM是一个c++包管理器，同样，在国内的网络\n环境下，下载依赖库速度较慢，不太适合大型工程的管理。conan是一个c++包管理器，但是conan的依赖库下载速度较慢，不太适合大型工程的管理。\n\n同时carbin也是非常适合c++工程的管理，carbin能够快速生成c++项目管理cmake体系，统一了项目编译过程，选项配置，以及编译后安装导出的变量规则，\n`EA`体系的项目可以通过固定规则`find_package`找到项目和项目对象.当时也适合任何基于`cmake`的项目使用。\n\n如果基于docker开发，`EA` 提供了已经基础开发[ea inf](https://hub.docker.com/repository/docker/lijippy/ea_inf/general)容器:\n\ncentos7-openssl11-python-310-gcc-9.3:\n\n    lijippy/ea_inf:c7_base_v1\n\n# [服务与应用](docs/product.md)\n\n* 天空中最亮的星 ———— [集群元数据服务](docs/application/sirius/sirius.md) - 服务发现，全局时钟服务，全局配置服务，全局id服务\n\n# 技术专题\n\n* [cmake有点甜](cicd/sweet_cmake.md) - 利用cmake构建系统进行工程编译和部署，实现cicd自动化。\n* [走近AI：向量检索](vecsearch/vector.md) - 向量检索是一种基于向量相似度的检索技术，本文介绍了向量检索的基本原理和应用场景,\n  以及kumo搜索引擎的实现。\n\n## 作者\n\n* @author Jeff.li vicky codejie\n* @email bohuli2048@gmail.com\n\n[1]: https://github.com/gottingen/collie\n\n[2]: https://github.com/gottingen/turbo\n\n[3]: https://github.com/gottingen/melon\n\n[4]: https://github.com/gottingen/alkaid\n\n[5]: https://github.com/gottingen/mizar\n\n[8]: https://github.com/gottingen/phekda\n\n[11]: https://github.com/gottingen/flare\n\n[12]: https://github.com/gottingen/theia\n\n[13]: https://github.com/gottingen/dwarf\n\n[14]: https://github.com/gottingen/exodus\n\n[15]: https://github.com/gottingen/hercules\n\n[16]: https://github.com/gottingen/carbin\n\n[17]: https://github.com/gottingen/carbin-template\n\n[18]: https://github.com/gottingen/carbin-recipes\n\n[19]: https://github.com/gottingen/neptune\n\n[31]: https://github.com/gottingen/sirius\n\n\n[50]: images/kumo_search_logo.png\n\n[51]: images/kumo_search.gif\n\n[52]: images/K_64x64.png","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgottingen%2Fkumo-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgottingen%2Fkumo-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgottingen%2Fkumo-search/lists"}