文档
/documents 路由允许您创建、管理和删除文档。
/documents 路由允许您创建、管理和删除文档。
使用 POST 获取文档
获取一组文档。
使用 offset 和 limit 参数来浏览文档。
如果没有先将属性显式添加到 filterableAttributes 列表,filter 将无法工作。在我们的专属指南中了解更多关于过滤器的信息。
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | String | 请求索引的 uid |
请求体
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
offset | 整数 | 0 | 跳过的文档数量 |
limit | 整数 | 20 | 返回的文档数量 |
fields | 字符串数组/null | * | 要显示的文档属性(区分大小写,逗号分隔) |
filter | 字符串/字符串数组的数组/null | 无 | 根据filterableAttributes列表中的属性筛选结果 |
retrieveVectors | 布尔值 | false | 在搜索结果中返回文档向量数据 |
ids | 主键数组 | null | 根据主键返回文档 |
发送空请求体 (--data-binary '{}') 将返回索引中的所有文档。
响应
| 名称 | 类型 | 描述 |
|---|---|---|
results | 数组 | 文档数组 |
offset | 整数 | 跳过的文档数量 |
limit | 整数 | 返回的文档数量 |
total | 整数 | 索引中的文档总数 |
返回文档顺序
/indexes/{index_uid}/documents/fetch 和 /indexes/{index_uid}/documents 接口返回的文档不会按照主键顺序排列。
示例
响应: 200 Ok
使用 GET 获取文档
该端点将在近期被弃用。建议改用 POST /indexes/{index_uid}/documents/fetch。
获取一组文档。
通过查询参数 offset 和 limit,您可以浏览所有文档。filter 必须是一个字符串。要创建过滤表达式,请使用 AND 或 OR。
除非先将属性显式添加到 filterableAttributes 列表,否则 filter 将无法工作。在我们的专用指南中了解更多关于过滤器的信息。
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | String | 请求索引的 uid |
查询参数
| 查询参数 | 默认值 | 描述 |
|---|---|---|
offset | 0 | 跳过的文档数量 |
limit | 20 | 返回的文档数量 |
fields | * | 要显示的文档属性(区分大小写,逗号分隔) |
filter | N/A | 根据 filterableAttributes 列表中的属性筛选结果 |
retrieveVectors | false | 在搜索结果中返回文档向量数据 |
ids | null | 根据主键返回文档 |
响应
| 名称 | 类型 | 描述 |
|---|---|---|
results | 数组 | 文档数组 |
offset | 整数 | 跳过的文档数量 |
limit | 整数 | 返回的文档数量 |
total | 整数 | 索引中的文档总数 |
返回文档顺序
/indexes/{index_uid}/documents/fetch 和 /indexes/{index_uid}/documents 的响应不会按照主键顺序返回文档。
示例
响应:200 Ok
获取单个文档
通过唯一ID获取单个文档。
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | 字符串 | 请求索引的uid |
document_id * | 字符串/整数 | 请求文档的文档ID |
查询参数
| 查询参数 | 默认值 | 描述 |
|---|---|---|
fields | * | 要显示的文档属性(区分大小写,逗号分隔) |
retrieveVectors | false | 在搜索结果中返回文档向量数据 |
示例
响应:200 Ok
添加或替换文档
添加一个文档数组,如果文档已存在则替换它们。如果提供的索引不存在,将会被创建。
如果您发送一个已存在的文档(相同的文档ID),整个现有文档将被新文档覆盖。新文档中不再存在的字段将被移除。如需部分更新文档,请参阅添加或更新文档端点。
此端点接受以下内容类型:
application/jsonapplication/x-ndjsontext/csv
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | 字符串 | 请求索引的uid |
查询参数
| 查询参数 | 默认值 | 描述 |
|---|---|---|
primaryKey | null | 索引的主键 |
csvDelimiter | "," | 配置分隔 CSV 字段的字符。必须是一个包含单个 ASCII 字符的字符串。 |
如果配置了 csvDelimiter 但发送的数据内容类型不是 CSV,Meilisearch 将会抛出错误。
如果你想在添加文档时设置索引的主键,这只能在第一次向索引添加文档时完成。之后如果提供了 primaryKey 参数,它将被忽略。
请求体
一个文档数组。每个文档都表示为一个 JSON 对象。
_vectors
_vectors 是一个特殊的文档属性,包含用于 AI 搜索的向量嵌入对象。
_vectors 对象的每个键必须是已配置的嵌入器名称,并对应一个包含两个字段的嵌套对象:embeddings 和 regenerate:
embeddings 是一个可选字段。它必须是一个表示文档单个嵌入的数字数组,也可以是一个表示文档多个嵌入的数字数组的数组。embeddings 默认为 null。
regenerate 是一个必填字段。它必须是一个布尔值。如果 regenerate 为 true,Meilisearch 会立即为该文档生成嵌入,并在每次文档更新时重新生成。如果 regenerate 为 false,Meilisearch 在文档更新时保留上一次的嵌入值。
你也可以使用数组简写形式为文档添加嵌入:
使用简写形式添加的向量嵌入在 Meilisearch 生成新嵌入时不会被替换。上面的示例等价于:
如果 _vectors 中某个嵌入器的键为空或 null,Meilisearch 会认为该文档没有该嵌入器的任何嵌入。在 AI 搜索中,这类文档会被排在最后返回。
示例
响应: 202 Accepted
你可以使用这个 taskUid 来获取任务状态的更多详情。
添加或更新文档
添加文档列表或更新已存在的文档。如果指定的索引不存在,将会被创建。
如果你发送一个已存在的文档(相同的文档ID),旧文档将根据新文档的字段进行部分更新。因此,新文档中未包含的字段将保持不变。
要完全覆盖文档,请查看添加或替换文档路由。
如果你想通过此路由设置索引的主键,你只能在首次向索引添加文档时进行此操作。如果在已添加文档后尝试设置主键,任务将返回错误。
此端点接受以下内容类型:
application/jsonapplication/x-ndjsontext/csv
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | String | 请求索引的uid |
查询参数
| 查询参数 | 默认值 | 描述 |
|---|---|---|
primaryKey | null | 文档的主键 |
csvDelimiter | "," | 配置CSV字段分隔符。必须是一个包含单个ASCII字符的字符串。 |
如果配置了csvDelimiter但发送的数据内容类型不是CSV,Meilisearch会抛出错误。
请求体
一个文档数组。每个文档以JSON对象表示。
示例
这个文档是对添加或替换文档中提到的文档的更新。
文档匹配的依据是它们具有相同的主键值id: 287947。该路由会更新title字段(从Shazam改为Shazam ⚡️)并向该文档添加新的genres字段。文档的其余部分将保持不变。
响应: 202 Accepted
可以使用这个taskUid来获取任务状态的更多详细信息。
使用函数更新文档 experimental
使用 RHAI 函数直接在 Meilisearch 中编辑一个或多个文档。
这是一个实验性功能。需要通过实验性功能端点激活:
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | String | 请求索引的 uid |
查询参数
| 查询参数 | 默认值 | 描述 |
|---|---|---|
function | null | 包含 RHAI 函数的字符串 |
filter | null | 包含过滤表达式的字符串 |
context | null | 包含 Meilisearch 应提供给编辑函数的数据对象 |
function
function 必须是一个包含 RHAI 函数的字符串,Meilisearch 会将其应用于所有选中的文档。默认情况下,该函数可以访问单个变量 doc,代表当前正在编辑的文档。这是一个必填字段。
filter(过滤器)
filter 必须是一个包含过滤表达式的字符串。当你只想对数据库中的文档子集应用 function 时,可以使用 filter。
context(上下文)
使用 context 可以向 function 的作用域传递数据。默认情况下,函数只能访问它正在编辑的文档。
示例
删除所有文档
删除指定索引中的所有文档。
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | 字符串 | 请求索引的 uid |
示例
响应:202 Accepted
你可以使用这个 taskUid 来获取任务状态的更多详细信息。
删除单个文档
根据文档的唯一 ID 删除单个文档。
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | 字符串 | 请求索引的 uid |
document_id * | 字符串/整数 | 请求文档的 文档 ID |
示例
响应: 202 Accepted
您可以使用这个 taskUid 来获取 任务状态 的更多详情。
通过筛选条件删除文档
根据筛选条件删除一组文档。
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | 字符串 | 请求索引的 uid |
请求体
一个表示为字符串或字符串数组的筛选表达式,用于指定要删除的文档。
在将属性显式添加到 filterableAttributes 列表 之前,filter 不会生效。在我们的专用指南中了解更多关于筛选器的信息。
发送空负载 (--data-binary '{}') 将返回 bad_request 错误。
示例
响应: 202 Accepted
您可以使用这个 taskUid 来获取任务状态的更多详情。
批量删除文档
此端点将在近期弃用。建议改用 POST /indexes/{index_uid}/documents/delete 接口。
根据文档ID数组批量删除一组文档。
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
index_uid * | String | 目标索引的uid标识符 |
请求体
包含待删除文档唯一ID的数字数组。
示例
响应: 202 Accepted
您可以使用这个 taskUid 来获取任务状态的更多详情。