终于有 Go 版的 Elasticsearch 了

大家好,我是 polarisxu。

企业内部搭建搜索引擎常用 Solr、Elasticsearch,它们都是使用 Java 实现的,底层依赖 Lucene,Java 相对来说占用较多内存。而今天要介绍的这个项目,目标就是作为 ES 的替代者,一个轻量级搜索引擎:Zinc。

项目地址:https://github.com/prabhatsharma/zinc,该项目开源十来天,目前 Star 数 3.4k+。


Zinc 是一个全文索引的搜索引擎。它是 Elasticsearch 的轻量级替代品,可以在不到 100 MB 的 RAM 中运行。它使用 bluge 作为底层索引库。

而且,Zinc 使用 Vue 打造了一个比 Elasticsearch 更简单、更易于操作的界面。

终于有 Go 版的 Elasticsearch 了

zinc

如果你只是使用 API 获取数据并使用 kibana 进行搜索(Kibana 不支持 Zinc。Zinc 提供了自己的 UI),那么它是 Elasticsearch 的直接替代品。

Zinc 主要有如下特性:

  1. 提供全文索引功能
  2. 单个二进制文件即可安装、运行,支持多平台。这得益于 Go 语言
  3. 用 Vue 编写的用于查询数据的 Web UI
  4. 与 Elasticsearch 兼容的数据获取 API(单记录和批量 API)
  5. 开箱即用的身份验证
  6. Schema less – 无需预先定义 schema,同一索引中的不同文档可以有不同的字段

不过,目前 Zinc 还处于 alpha 阶段,而且缺少集群,可用性也没得到很好的验证。

关于如何安装使用,项目首页有说明,支持普通安装(可以直接下载编译好的二进制文件),也支持 Docker 和 K8S 安装使用。

我根据说明,在本地搭建后,根据提供的示例数据构建索引:

$ FIRST_ADMIN_USER=admin FIRST_ADMIN_PASSWORD=Complexpass#123 ./zinc{"level":"debug","time":"2021-12-12T22:53:51+08:00","message":"Loading indexes..."}{"level":"debug","time":"2021-12-12T22:53:51+08:00","message":"Loading system indexes..."}{"level":"debug","time":"2021-12-12T22:53:51+08:00","message":"Index loaded: _users"}{"level":"debug","time":"2021-12-12T22:53:51+08:00","message":"Index loaded: _index_mapping"}{"level":"debug","time":"2021-12-12T22:53:51+08:00","message":"Error loading .env file"}[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode)[GIN-debug] GET /healthz --> github.com/prabhatsharma/zinc/pkg/meta/v1.GetHealthz (3 handlers)[GIN-debug] GET / --> github.com/prabhatsharma/zinc/pkg/meta/v1.GUI (3 handlers)[GIN-debug] GET /ui/*filepath --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (3 handlers)[GIN-debug] HEAD /ui/*filepath --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (3 handlers)[GIN-debug] POST /api/login --> github.com/prabhatsharma/zinc/pkg/handlers.ValidateCredentials (3 handlers)[GIN-debug] PUT /api/user --> github.com/prabhatsharma/zinc/pkg/handlers.CreateUpdateUser (4 handlers)[GIN-debug] DELETE /api/user/:userID --> github.com/prabhatsharma/zinc/pkg/handlers.DeleteUser (4 handlers)[GIN-debug] GET /api/users --> github.com/prabhatsharma/zinc/pkg/handlers.GetUsers (4 handlers)[GIN-debug] PUT /api/index --> github.com/prabhatsharma/zinc/pkg/handlers.CreateIndex (4 handlers)[GIN-debug] GET /api/index --> github.com/prabhatsharma/zinc/pkg/handlers.ListIndexes (4 handlers)[GIN-debug] PUT /api/:target/document --> github.com/prabhatsharma/zinc/pkg/handlers.UpdateDocument (4 handlers)[GIN-debug] POST /api/:target/_search --> github.com/prabhatsharma/zinc/pkg/handlers.SearchIndex (4 handlers)[GIN-debug] PUT /es/:target/_doc/:id --> github.com/prabhatsharma/zinc/pkg/handlers.UpdateDocument (4 handlers)[GIN-debug] DELETE /es/:target/_doc/:id --> github.com/prabhatsharma/zinc/pkg/handlers.DeleteDocument (4 handlers)[GIN-debug] POST /es/:target/_doc --> github.com/prabhatsharma/zinc/pkg/handlers.UpdateDocument (4 handlers)[GIN-debug] PUT /es/:target/_create/:id --> github.com/prabhatsharma/zinc/pkg/handlers.UpdateDocument (4 handlers)[GIN-debug] POST /es/:target/_create/:id --> github.com/prabhatsharma/zinc/pkg/handlers.UpdateDocument (4 handlers)[GIN-debug] POST /es/:target/_update/:id --> github.com/prabhatsharma/zinc/pkg/handlers.UpdateDocument (4 handlers)[GIN-debug] POST /es/_bulk --> github.com/prabhatsharma/zinc/pkg/handlers.BulkHandler (4 handlers)[GIN-debug] POST /es/:target/_bulk --> github.com/prabhatsharma/zinc/pkg/handlers.BulkHandler (4 handlers)[GIN-debug] Listening and serving HTTP on :4080

访问 https://localhost:4080 即可看到上面的界面。

目前 Go 语言中文网的搜索使用的是 Solr,抽空尝试验证 Zinc,如果稳定、成熟,考虑迁移到 Zinc。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(6)
上一篇 2022年 11月 8日 下午3:16
下一篇 2022年 11月 8日 下午3:29

相关推荐

  • 安徽省中学

    今年教师节期间,《中师生》公众号决定在2023年春节前,整理一本《1977–2000年全国中师学校名录大全》小册子。全名录约1000所,分省按地市进行排序,100页左右…

    2022年 11月 30日
  • 水的净化过程,水的净化过程要加什么

    自来水厂净水过程示意图 净化水的 方法 原理 作用 静置沉淀 使不溶性的杂质沉降下来并与水分层 除去不溶性杂质 过滤 把液体与不溶于液体的固体分开 除去不溶性杂质 吸附 利用活性炭…

    2023年 5月 2日
  • 口腔医学和口腔医学技术有什么区别两个专业

    口腔医学和口腔医学技术有什么区别?赚的多,加班少,社会地位还高的口腔医生,您可千万别报错了。 高三的家长们在填高考志愿的时候,有两个专业很容易混淆,那就是口腔医学专业和口腔医学技术…

    2023年 4月 24日
  • nba sf什么意思

    看篮球比赛,经常听到解说SF,SG,1号位,2号位等。说某些球员可以打3号位也可以打4号位。 今天我们一起来学习,解说口中的缩写到底指哪个位置?1号位,2号位到底是啥? PG:Po…

    2023年 5月 6日
  • “又双叒叕”,这几个字好奇怪,怎么读?啥意思?很多人被难住了

    “又双叒叕”这几个字连在一起看着是不是很奇怪?这几字怎么读?又是什么意思?估计没有多少人认得。 其实,“又双叒叕”:一个网络用语。这四个字,很有规律,第一个字是一个又,第二个字二个…

    2022年 11月 5日
  • 张国荣离开19年,63岁的唐鹤德依然单身了

    01 张国荣有一次在访谈中提到,在人生最低谷,他承受太多流言蜚语。 那时候,整个世界都在中伤他。 因为谭张争霸。 也因为其他有的没的。 他一度心灰意冷,颓丧不堪。 世人拜高踩低,只…

    2023年 3月 23日
  • 9张图就能看懂树苗移植方法全过程的图片

    树苗移栽 是盆栽栽培中必不可少的一环。 植物最怕的就是伤根动土,那么本文所讲的“绝不会失败的树苗移栽方法”,则是你不得不学的实用干货。 移植树苗保根关键 台友得知道,若要想在盆栽栽…

    2023年 12月 14日
  • 帮你办信用卡?小心套路骗局

    “我本想在网上申请办理一张信用卡,结果却被骗了2万多块钱!”家住重庆市铜梁区的尹女士说起自己被骗的经历仍记忆犹新。近日,经湖北省随州市曾都区检察院提起公诉,法院以诈骗罪判处董某某有…

    综合百科 2023年 3月 15日
  • 朝阳社区开展消防安全排查(社区开展居民房消防安全排查)

    7月的清晨,阳光洒进楼道 “我在这儿住了10年了,今天终于看见楼道的阳光了!” “这多好,见着阳光了,楼道通风了!” “自从搬进这个楼,就没见过楼道这么宽敞过!” “再也不用在楼道…

    2023年 9月 23日
  • 将笑梗玩得如此清新脱俗,毫不做作,它可没你想得那么简单

    最近有部古装剧真是太上头了,相信许多人已经欲罢不能了吧? 当当当,就是这部由许凯、张榕容领衔主演的搞笑热血古装剧《从前有座灵剑山》。 最开始播出的时候,个个都嫌弃女主丑,土肥圆等等…

    2022年 12月 13日