
# 搜索知识库 - SearchInKnowledgeRepo
#### 功能介绍
根据query，在指定知识库中搜索得到topN相关的文档分片内容。
#### URI
POST /v1/{project_id}/applications/{application_id}/uni-search/experience/searchtext
表1路径参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| project_id     | 是    | String | **参数解释：** 项目ID，获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-koosearch/koosearch_06_0022.html)。 **约束限制：** 不涉及 **取值范围：** 1～64个字符，只能包含数字、字母、中划线和下划线，且必须以字母开头。 **默认取值：** 不涉及 |
| application_id | 是    | String | **参数解释：** 应用ID，获取方法请参见[获取应用ID](https://support.huaweicloud.com/api-koosearch/koosearch_06_0021.html)。 **约束限制：** 字符串 **取值范围：** 1～64个字符，只能包含数字、字母、中划线和下划线，且必须以字母开头。 **默认取值：** 不涉及 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 接口鉴权使用的Token，Token获取方式参考：[获取IAM用户Token](https://support.huaweicloud.com/api-koosearch/koosearch_06_0009.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
表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语法](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax)。    **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                       |
| 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 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| extend_context   | 否    | Boolean          | **参数解释：** 长文本开关，开启后检索支持长文本 **约束限制：** 不涉及 **取值范围：** false：不开启扩展长上下文功能； true：开启扩展长上下文功能； **默认取值：** false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| reference_count  | 否    | Integer          | **参数解释：** 参考文档数量，搜索接口进行扩展长上下文的文档数量 **约束限制：** 不涉及 **取值范围：** 1-50 **默认取值：** 3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数       | 参数类型                                                                                     | 描述                                                                                                                                                       |
|:---|:---|:---|
| doc_list | Array of [ChatReferenceInfo] objects | **参数解释：** 文档列表。 **取值范围：** 不涉及 |
| total    | Integer                                                                                  | **参数解释：** 总数。 **取值范围：** 不涉及   |
   
 表5ChatReferenceInfo 
| 参数                | 参数类型                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| 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-问答）。 **取值范围：** - 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\> | **参数解释：** 用于存储未知字段的。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| elements          | Array of strings     | **参数解释：** html中的数据元素。 **取值范围：** 不涉及 **约束限制：** 此参数只有25.7.T1及之后版本支持。                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| pdf_coordinate    | Object               | **参数解释：** 用于pdf解析文本定位的元数据。取值样例如下 \[ \[ 202, 687 \], \[ 1031, 687 \] \] **取值范围：** 不涉及 **约束限制：** 此参数只有25.7.T1及之后版本支持。 |
   
#### 请求示例
根据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 | 搜索结果返回体。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-koosearch/ErrorCode.html)。
