更新时间:2025-07-22 GMT+08:00
分享

搜索知识库

功能介绍

根据query,在指定知识库中搜索得到topN相关的文档分片内容。

URI

POST /v1/{project_id}/applications/{application_id}/uni-search/experience/searchtext

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

项目ID,获取方法请参见获取项目ID

约束限制:

不涉及

取值范围:

1~64个字符,只能包含数字、字母、中划线和下划线,且必须以字母开头。

默认取值:

不涉及

application_id

String

参数解释:

应用ID,获取方法请参见获取应用ID

约束限制:

字符串

取值范围:

1~64个字符,只能包含数字、字母、中划线和下划线,且必须以字母开头。

默认取值:

不涉及

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

接口鉴权使用的Token,Token获取方式参考:获取IAM用户Token

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表3 请求Body参数

参数

是否必选

参数类型

描述

repo_id

String

参数解释:

知识库ID。

约束限制:

只能包含1到64位数字、字母、中划线和下划线。

取值范围:

不涉及

默认取值:

不涉及

extra_repo_ids

Array of strings

参数解释:

多知识库搜索。

约束限制:

不涉及

取值范围:

列表长度小于9,并且id唯一不存在重复值。

默认取值:

不涉及

content

String

参数解释:

搜索内容。

约束限制:

不涉及

取值范围:

长度不能超过1000个字符。

默认取值:

不涉及

scope

String

参数解释:

搜索范围,定义搜索索引中的信息子集,默认文档库。

约束限制:

不涉及

取值范围:

  • doc:文档知识,使用query2doc模型

  • faq:FAQ,常见问答集,使用query2query模型

  • web:网络来源,来自于web搜索引擎

  • keyword: 关键字,开启精排时分页的最大数量为召回配置中的关键字topK。

  • mix: 混合搜索 (文档搜索和关键字搜索,包含FAQ,FAQ的数量为召回配置中的FAQ的topK,FAQ阈值为召回配置中的FAQ相似性阈值)

  • graph: 图谱chunk,构建图谱聚合后能检索到构造结果。

  • graph_keyword:图谱关键词检索

默认取值:

doc

filter_string

String

参数解释:

带语法的查询字符串,使用具有严格语法的解析器,根据提供的查询字符串返回文档。

例如:tags:(魔都 OR 首都) AND category:"城市(city)"

例如:需要依据文件ID过滤分片,则使用:"fileId": "f6a050ffef5512e80a6dea57e386f194"

约束限制:

  1. 支持布尔运算符 AND、OR 和 NOT(也写为 &&、|| 和 !),但请注意它们不遵守通常的优先级规则,因此只要一起使用多个运算符,就应使用括号。

  2. 保留字符查询时需要使用 \\ 转义:+ - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /,如\\!

  3. 详细语法参考query_string语法

取值范围:

不涉及

默认取值:

不涉及

page_num

Integer

参数解释:

页码。

约束限制:

不涉及

取值范围:

范围1~9999,注意page_num+page_size不能超过10000。

默认取值:

不涉及

page_size

Integer

参数解释:

页面大小。

约束限制:

不涉及

取值范围:

范围1~9999,注意page_num+page_size不能超过10000。

默认取值:

不涉及

search_threshold

Float

参数解释:

搜索阈值(只针对向量搜索),范围0~200。

约束限制:

不涉及

取值范围:

0-200

默认取值:

不涉及

响应参数

状态码:200

表4 响应Body参数

参数

参数类型

描述

doc_list

Array of ChatReferenceInfo objects

参数解释:

文档列表。

取值范围:

不涉及

total

Integer

参数解释:

总数。

取值范围:

不涉及

表5 ChatReferenceInfo

参数

参数类型

描述

file_id

String

参数解释:

文件id(或FAQ id)。

取值范围:

不涉及

chunk_id

String

参数解释:

块ID。

取值范围:

不涉及

title

String

参数解释:

标题。

取值范围:

不涉及

subtitle

String

参数解释:

文档子标题。

取值范围:

不涉及

content

String

参数解释:

文本内容。

取值范围:

不涉及

big_content

String

参数解释:

内容上下文,比如未分片的原始表格。

注意:

(1)搜索接口可能有值

(2)问答接口会将big_content替换到content,此字段清空。

取值范围:

不涉及

doc_type

String

参数解释:

文档类型(doc-文档,faq-问答)。

取值范围:

不涉及

file_path

String

参数解释:

文档归档路径。

取值范围:

不涉及

category

String

参数解释:

文档目录,单值,对应目录树中的叶子节点。

取值范围:

不涉及

tags

Array of strings

参数解释:

文档标签列表。

取值范围:

不涉及

update_date_time

String

参数解释:

更新时间。

取值范围:

不涉及

repo_id

String

参数解释:

知识库标识。

取值范围:

不涉及

page_num

Long

参数解释:

页码。

取值范围:

不涉及

component_num

Long

参数解释:

切片顺序数。

取值范围:

不涉及

score

Float

参数解释:

ES打分。

取值范围:

不涉及

additional_fields

Map<String,Object>

参数解释:

用于存储未知字段的。

取值范围:

不涉及

请求示例

根据query,在指定知识库中搜索得到topN相关的文档分片内容。

/v1/123456/applications/123456/uni-search/experience/searchtext

{
  "repo_id" : "1234abdc",
  "content" : "写一个穿越到宋朝的故事。",
  "page_num" : 1,
  "page_size" : 10
}

响应示例

状态码:200

搜索结果返回体。

{
  "doc_list" : [ {
    "file_id" : "123abc",
    "title" : "人工智能.doc",
    "content" : "人工智能",
    "update_date_time" : "134554",
    "doc_type" : "doc",
    "file_path" : "uni-search/v1/人工智能.doc",
    "score" : 0.9999
  } ],
  "total" : 12
}

状态码

状态码

描述

200

搜索结果返回体。

错误码

请参见错误码

相关文档