INFINI Easysearch
INFINI Easysearch 是一款由极限科技研发的分布式近实时搜索型数据库。极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。目前,极限科技已获得24项软件著作权,4项专利,以及13项认证。
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。 Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。 Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。
- 2023.09.13, INFINI Easysearch 在墨天轮中国搜索型数据库排名中荣登榜首
- 2023.07.04, INFINI Easysearch 产品荣获中国信通院颁布《搜索型数据库基础能力专项评测证书》
- 2023.05.15, INFINI Easysearch 正式发布
相关产品
INFINI Console 一款非常轻量级、功能强大的多集群、跨版本的 Elasticsearch 统一管控平台。通过对 Elasticsearch 跨版本多集群的集中纳管,我们可以快速方便的对企业内部的所有 Elasticsearch 集群进行统一管理。
极限网关 (INFINI Gateway) 是一个面向 Elasticsearch 的高性能应用网关,一般将网关部署在 Elasticsearch 集群前面, 将以往直接发送给 Elasticsearch 的请求都发送给网关,再由网关转发给请求到后端的 Elasticsearch 集群。网关包含丰富的特性,比如索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Docker 环境下使用 Easysearch
拉取并运行 Easysearch 容器。这里指定初始密码为 xxx
podman pull infinilabs/easysearch:1.8.3-265
echo EASYSEARCH_INITIAL_ADMIN_PASSWORD=xxx > .env
podman run --name easysearch --env-file ./.env -p 9200:9200 0a2fa7659767
验证运行状态
curl -ku admin:xxx https://localhost:9200
{
"name" : "node-1",
"cluster_name" : "infinilabs",
"cluster_uuid" : "eax6HjOdSh6vVQROBxfX0w",
"version" : {
"distribution" : "easysearch",
"number" : "1.8.3",
"distributor" : "INFINI Labs",
"build_hash" : "6127bfe973a3d41f2f237a725697a1f00aa4d015",
"build_date" : "2024-08-09T06:53:51.621463Z",
"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!"
}
查看用户自进行的自定义设置
curl -ku admin:xxx https://localhost:9200/_cluster/settings
{
"persistent": {
"index_state_management": {
"template_migration": {
"control": "-1"
}
}
},
"transient": {}
}
Easysearch 用户授权
下面演示如何设定 基于角色的访问控制 (RBAC)
- 创建角色
myrole
角色:定义操作的权限或范围:集群、索引、文档或字段。
curl -X PUT -H "Content-Type: application/json" \
-ku admin:xxx "https://localhost:9200/_security/role/myrole" -d'
{
"cluster": ["cluster_composite_ops","indices_monitor"],
"indices": [
{
"names":[
"movies*"
],
"query":"",
"field_security":[
],
"field_mask":[
],
"privileges":[
"read"
]
}
]
}'
{"status":"CREATED","message":"'myrole' created."}
- 查看角色
curl -sku admin:xxx https://localhost:9200/_security/role/myrole | jq
{
"myrole": {
"reserved": false,
"hidden": false,
"cluster": [
"cluster_composite_ops",
"indices_monitor"
],
"indices": [
{
"names": [
"movies*"
],
"query": "",
"field_security": [],
"field_mask": [],
"privileges": [
"read"
]
}
],
"static": false
}
}
- 创建用户
myuser
curl -X PUT -H "Content-Type: application/json" \
-ku admin:xxx "https://localhost:9200/_security/user/myuser" -d'
{
"password": "myuser",
"roles": ["myrole"],
"attributes": {
"attribute1": "value1",
"attribute2": "value2"
}
}'
{"status":"CREATED","message":"'myuser' created."}
- 查看用户
curl -sku admin:xxx https://localhost:9200/_security/user/myuser | jq
{
"myuser": {
"hash": "",
"reserved": false,
"hidden": false,
"external_roles": [],
"attributes": {
"attribute1": "value1",
"attribute2": "value2"
},
"roles": [
"myrole"
],
"static": false
}
}
小结
关于 INFINI Easysearch 的内容先简单介绍到这里。更多内容可参考官方文档。
http://infinilabs.cn/docs/latest/easysearch/overview/