使用 /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 密钥

获取网络对象

GET

返回当前实例网络对象的值。

示例

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"
    }
  }
}

更新网络对象

PATCH

更新网络对象的 selfremotes 字段。

网络对象的更新是部分更新。只需提供需要更新的字段。未在请求体中出现的字段将保持不变。

要将 selfremotes 重置为原始值,请将它们设为 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"
    }
  }
}