批量为数据项创建索引
为提高索引数据记录的速度,特提供批量索引数据记录的接口。
Tip: 注意:一个batch中所有数据项的datasourceID需要一致,tenantID也需要一致
请求
| 项目 | 值 |
|---|---|
| HTTP URL | https://open.feishu.cn/open-apis/search/v2/data_sources/:data_source_id/items/batch_create |
| HTTP Method | POST |
| 支持的应用类型 | custom,isv |
| 权限要求 调用该 API 所需的权限。开启其中任意一项权限即可调用 | search:data_source 查询、创建、修改和删除自定义搜索数据源、数据范式或数据项 |
请求头
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| Authorization | string | 是 | tenant_access_token 值格式:"Bearer access_token" 示例值:"Bearer t-7f1bcd13fc57d46bac21793a18e560" 了解更多:如何选择与获取 access token |
| Content-Type | string | 是 | 固定值:"application/json; charset=utf-8" |
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
data_source_id | string | 数据源的ID 示例值:"6953903108179099667" |
请求体
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
items | list<Item> | 是 | 待进入索引的item列表 |
∟ id | string | 是 | item 在 datasource 中的唯一标识 示例值:"my_item_01010111" |
∟ acl | acl\[\] | 是 | item 的访问权限控制。 acl 字段为空数组,则默认数据不可见。如果数据是全员可见,需要设置 access="allow"; type="user"; value="everyone" |
∟ ∟ access | string | 否 | 权限类型,优先级:Deny > Allow。 示例值:"allow" 可选值有: - allow:允许访问 - deny:禁止访问 |
∟ ∟ value | string | 否 | 设置的权限值,例如 userID ,依赖 type 描述。 注:在 type 为 user 且 access 为 allow 时,可填 "everyone" 来表示该数据项对全员可见; 示例值:"d35e3c23" |
∟ ∟ type | string | 否 | 权限值类型 示例值:"user" 可选值有: - user:访问权限控制中指定“用户”可以访问或拒绝访问该条数据 |
∟ metadata | item_metadata | 是 | item 的元信息 |
∟ ∟ title | string | 是 | 该条数据记录对应的标题 示例值:"工单:无法创建文章" |
∟ ∟ source_url | string | 是 | 该条数据记录对应的跳转url 示例值:"http://www.abc.com.cn" |
∟ ∟ create_time | int | 否 | 数据项的创建时间。Unix 时间,单位为秒 示例值:1618831236 |
∟ ∟ update_time | int | 是 | 数据项的更新时间。Unix 时间,单位为秒 示例值:1618831236 |
∟ ∟ source_url_mobile | string | 是 | 移动端搜索命中的跳转地址。如果您PC端和移动端有不同的跳转地址,可以在这里写入移动端专用的url,我们会在搜索时为您选择合适的地址 示例值:"https://www.feishu.cn" |
∟ structured_data | string | 是 | 结构化数据(以 json 字符串传递),这些字段是搜索结果的展示字段(title字段无须在此另外指定),这里的示例值遵循了数据范式示例中的schema定义,请按你在“数据范式”中创建的schema约束填写数据 示例值:"{"description":"description1", "priority":"HIGH"}" |
∟ content | item_content | 否 | 非结构化数据,如文档文本,飞书搜索会用来做召回 |
∟ ∟ format | string | 否 | 内容的格式 示例值:"html" 可选值有: - html:html格式 - plaintext:纯文本格式 |
∟ ∟ content_data | string | 否 | 全文数据 示例值:"这是一个很长的文本" |
请求体示例
json
{
"items": [{
"id": "my_item_01010111",
"acl": [{
"access": "allow",
"value": "everyone",
"type": "user"
}],
"metadata": {
"title": "工单:无法创建文章",
"source_url": "http://www.abc.com.cn",
"create_time": 1618831236,
"update_time": ""
},
"structured_data": "{\"description\":\"description1\", \"priority\":\"HIGH\"}",
"content": {
"format": "html",
"content_data": "这是一个很长的文本"
}
},
{
"id": "my_item_01010112",
"acl": [{
"access": "allow",
"value": "d35e3c24",
"type": "user"
}],
"metadata": {
"title": "工单2:无法创建文章",
"source_url": "http://www.abc.com.cn",
"create_time": 1618831236,
"update_time": 1618831236
},
"structured_data": "{\"description\":\"description2\",\"priority\":\"LOW\"}",
"content": {
"format": "html",
"content_data": "这是一个很长的文本"
}
}
]
}响应
响应体
| 名称 | 类型 | 描述 |
|---|---|---|
code | int | 错误码,非 0 表示失败 |
msg | string | 错误描述 |
data | \- | - |
∟ result | list<batch_item_result> | 返回信息列表 |
∟ ∟ item_id | string | itemID |
∟ ∟ is_success | boolean | 该数据项是否成功发往索引。 注意:存在极端情况该字段为True,但并未进入索引 |
∟ ∟ err | string | 若该数据项索引失败,则表示该数据的失败信息 |
响应成功示例
json
{
"code": 0,
"data": {
"result": [
{
"err": "invalid parameter",
"is_success": false,
"item_id": "zfz-test-batch_create_item_id1"
},
{
"err": "",
"is_success": true,
"item_id": "zfz-test-batch_create_item_id2"
}
]
},
"msg": "success"
}响应失败示例
json
{
"code": 1272002,
"msg": "操作鉴权失败",
"error": {}
}错误码
| HTTP状态码 | 错误码 | 描述 | 排查建议 |
|---|---|---|---|
| 500 | 1270001 | 系统内部错误 | 联系系统开发人员协助定位 |
| 400 | 1270002 | 参数错误 | 根据错误信息和文档排查非法参数 |
| 400 | 1270004 | 数据源不存在 | 确认 datasource ID 是否正确 |
| 400 | 1270005 | 该功能仅对旗舰版可用 | 请联系销售人员升级套餐以使用此高级功能 |
| 400 | 1271004 | acl字段填写不完整 | 填写数据项的可见性 |
| 401 | 1272001 | 无权限操作数据源 | 确认 datasource ID 是否合法 |
| 500 | 1272002 | 操作鉴权失败 | 如果重试后仍然失败,请联系系统开发人员协助定位 |
| 400 | 1272004 | acl中指定的user数量超过限制 | 减少 acl 中使用的 user,最大为 1000 |
