使用 /network
路由可以创建 Meilisearch 实例的网络。当与联邦搜索(federated search)结合使用时,这一功能特别有用,可用于实现诸如分片(sharding)等水平数据库分区策略。
这是一个实验性功能。需要通过 Meilisearch Cloud 用户界面或实验性功能端点来激活:
curl \
-X PATCH 'MEILISEARCH_URL/experimental-features/' \
-H 'Content-Type: application/json' \
--data-binary '{
"network": true
}'
如果某个属性同时满足以下两个条件:
- 不在
displayedAttributes
列表中
- 存在于
sortableAttributes
中
那么该属性的值有可能通过 /network
端点被公开访问。
如果您依赖不在 displayedAttributes
中的属性值始终保持隐藏,请不要启用 network
功能。
网络对象
{
"self": "ms-00",
"remotes": {
"ms-00": {
"url": "http://ms-1235.example.meilisearch.io",
"searchApiKey": "Ecd1SDDi4pqdJD6qYLxD3y7VZAEb4d9j6LJgt4d6xas"
},
"ms-01": {
"url": "http://ms-4242.example.meilisearch.io",
"searchApiKey": "hrVu-OMcjPGElK7692K7bwriBoGyHXTMvB5NmZkMKqQ"
}
}
}
self
类型: 字符串
默认值: null
描述: 表示当前实例名称的字符串
remotes
类型: 对象
默认值: {}
描述: 包含远程对象的对象。每个远程对象的键表示远程实例的名称
远程对象
"ms-00": {
"url": "http://ms-1235.example.meilisearch.io",
"searchApiKey": "Ecd1SDDi4pqdJD6qYLxD3y7VZAEb4d9j6LJgt4d6xas"
}
url
类型: 字符串
默认值: null
描述: 表示 Meilisearch 实例地址的 URL。该 URL 不需要公开,但必须能被网络中的所有实例访问。必填项
searchApiKey
类型: 字符串
默认值: null
描述: 具有搜索权限的 API 密钥
获取网络对象
返回当前实例网络对象的值。
curl \
-X GET 'MEILISEARCH_URL/network'
响应: 200 Ok
{
"self": "ms-00",
"remotes": {
"ms-00": {
"url": "http://ms-1235.example.meilisearch.io",
"searchApiKey": "Ecd1SDDi4pqdJD6qYLxD3y7VZAEb4d9j6LJgt4d6xas"
},
"ms-01": {
"url": "http://ms-4242.example.meilisearch.io",
"searchApiKey": "hrVu-OMcjPGElK7692K7bwriBoGyHXTMvB5NmZkMKqQ"
}
}
}
更新网络对象
更新网络对象的 self
和 remotes
字段。
网络对象的更新是部分更新。只需提供需要更新的字段。未在请求体中出现的字段将保持不变。
要将 self
和 remotes
重置为原始值,请将它们设为 null
。要从网络中移除单个 remote
,将其名称对应的值设为 null
。
请求体
名称 | 类型 | 默认值 | 描述 |
---|
self | 字符串 | null | 当前实例的名称 |
remotes | 字符串 | null | 描述可访问的 Meilisearch 实例的远程对象列表 |
curl \
-X PATCH 'MEILISEARCH_URL/network' \
-H 'Content-Type: application/json' \
--data-binary '{
"self": "ms-00",
"remotes": {
"ms-00": {
"url": "http://INSTANCE_URL",
"searchApiKey": "INSTANCE_API_KEY"
},
"ms-01": {
"url": "http://ANOTHER_INSTANCE_URL",
"searchApiKey": "ANOTHER_INSTANCE_API_KEY"
}
}
}'
响应: 200 Ok
{
"self": "ms-00",
"remotes": {
"ms-00": {
"url": "http://INSTANCE_URL",
"searchApiKey": "INSTANCE_API_KEY"
},
"ms-01": {
"url": "http://ANOTHER_INSTANCE_URL",
"searchApiKey": "ANOTHER_INSTANCE_API_KEY"
}
}
}