You need to enable JavaScript to run this app.
导航
Search - 搜索
最近更新时间:2025.11.19 19:09:07首次发布时间:2025.04.24 20:27:20
复制全文
我的收藏
有用
有用
无用
无用

根据用户输入的查询词或图片,在应用所绑定的物品数据源中搜索与用户输入相关联的内容。

注意事项

  • 使用限制:
    • 受到HTTP Body大小限制,单次请求的包体大小最大不超过10MB。

请求说明

  • 请求方式:POST
  • 请求地址:https://aisearch.cn-beijing.volces.com/api/v1/application/{application_id}/search

{application_id}:在控制台创建应用后系统指定的应用唯一标识,可在控制台查看

鉴权方式

可使用API Key或Access Key鉴权,详情参考API 鉴权机制说明

请求参数

请求体

参数

类型

是否必选

示例值

描述

query

Query

{
    "text":"春夏新款运动装",
}

搜索查询的文本或图片信息
根据关联的数据集类型不同,内容会有不同:
关联图文数据集
关联视频数据集

dataset_id

String

"106265704"

数据集 id,可在数据集列表或数据集详情页中查看。调用直接搜索功能时,必须在每次请求中明确指定所要搜索的数据集 ID。

page_number

Int

1

搜索页码,可用于列表分页功能,从 1 开始。例如:"page_number": 1,即返回第一页的搜索结果。

page_size

Int

20

每页搜索结果的数量,可以传入1~您在控制台设置的最大返回数量。
默认设置:10

user

User

{
    "_user_id":"U90E89FF8045"
}

用户信息,可上传用户pseudo ID,用于明确是哪一位具体的用户触发了本次 API 调用。

filter

Filter

见下方数据结构 - Filter

搜索过滤条件,可根据应用数据源配置中支持过滤的字段对检索内容进行过滤。

  • 默认值为空,即不对检索内容做过滤。
  • 过滤条件支持must、must_not、range三种查询算子,支持and和or两种逻辑算子,可对查询算子进行组合。

sort_by

String

"create_at"

排序字段,字段值必须包含在数据集字段中。支持的类型有:

  • 基础类型
    • int32int64floatboolstring
  • 复杂类型
    • array<object>
    • object

对于复杂类型,字段格式为:"object.field",例如"product.price"

sort_order

String

"desc"

排序顺序,支持枚举值:"desc"

  • "desc":降序 (不传默认为降序)
  • "asc":升序

output_fields

Array

["title", "price", "category"]

指定搜索列表的'display_fields'返回中,选择物品数据集数据中的哪些字段来返回展示,如果不传则返回所有字段。

如果数据集中存在嵌套的对象(Object或Array),则只支持传入上层的字段名。
传入不存在的字段或Object内层的字段会被忽略。

context

Object<Context>

见下方数据结构 - 见下:Context

支持配置请求上下文(context),影响搜索物品召回处理逻辑和返回物品的结果

数据结构

Query

参数

类型

是否必选

示例值

描述

text

String

至少一个必选

"女鞋 春夏" "三体"

文本查询词

image_url

String

"data:image/jpeg;base64,iVBUAAAA..."

图片搜索,当前仅支持输入图片base64。
关联视频数据集的应用暂不支持图片搜索。

image_query_instruction

String

传入image_url字段时可选

“基于图片的整体内容召回相似的图片,而不是仅关注图片中的局部信息“

图片搜索指令,该字段用于以图搜图场景下增强搜图效果

Query上传图片格式说明:
在query.image_url中传入base64格式的图片文件,图片文件的格式和条件限制详见说明:

说明

传入图片需要满足以下条件:
支持格式:​jpeg、png、 webp、bmp、tiff、ico、dib、icns、sgi、jpeg2000。其中,tiff、sgi、icns、jpeg2000 格式图片,需要保证和元数据对齐,如在对象存储中正确设置文件元数据,否则会解析失败。
宽高比(宽/高):​在范围[1/100, 100] 。
边长: [10, 6000] px,即短边像素需大于 10 px,长边像素需小于6000 px。

请确保Base64编码符合标准格式,包含**数据头(Data URI Scheme)**与 Base64 编码正文两部分:

data:[<MIME类型>];base64,<Base64编码字符串>

组成部分

格式要求

说明

示例

数据头前缀

固定为 data:

标识该字符串为 Data URI 格式,不可省略或修改

MIME 类型

需与图片实际格式严格匹配

用于服务端识别图片类型,禁止随意填写(如 JPG 图填 PNG 的 MIME)

JPG/JPEG:image/jpeg;PNG:image/png;WebP:image/webp

分隔符

固定为 ;base64,

连接 MIME 类型与 Base64 编码正文,分号、“base64”、逗号均不可省略或替换

Base64 编码正文

符合 RFC 4648 标准的 Base64 编码字符串

由图片文件二进制数据直接编码生成,禁止包含空格、换行符、特殊字符,需为连续的 ASCII 字符串

User

参数

类型

是否必选

示例值

描述

_user_id

String

"ldy_199432"

代表最终用户的唯一标识符
该字段用于明确是哪一位具体的用户触发了本次 API 调用,对于区分来自同一组织下的不同使用者至关重要。
例如,它可以帮助您记录详细的操作日志、进行个性化推荐或分析不同用户的行为模式。建议为每个不同的最终用户分配并传递一个唯一的 ID。

Filter

参数

类型

是否必选

示例值

描述

op

String

"must"

算子类型,支持:
"must"、"must_not"、"range"、"and"、"or"

field

String

条件必选

"status"

需要应用过滤条件的字段。

  • "must"、"must_not"、"range" 算子必填。
  • "and"、"or"算子忽略该参数。

gte

Float

100.0

"range" 算子的过滤范围,语义为过滤"field"字段值大于等于指定值的数据。

gt

Float

100.0

"range" 算子的过滤范围,语义为过滤"field"字段值大于指定值的数据。

lte

Float

500.0

"range" 算子的过滤范围,语义为过滤"field"字段值小于等于指定值的数据。

lt

Float

500.0

"range" 算子的过滤范围,语义为过滤"field"字段值小于指定值的数据。

conds

Array

条件必选

见下方示例

除 "range" 算子之外,其余算子均需指定conds条件。

  • "must"、"must_not"算子需要指定过滤值的集合。
  • "and"、"or" 算子需要指定嵌套的过滤条件。

Filter各算子示例

算子

支持字段类型

算子说明

示例

must

  • Int32
  • Int64
  • String
  • Bool
  • Array
  • Array
  • Array

目标的字段值必须在 [...] 之中,即 "must in"。

示例一:​地区必须属于"cn"或"sg"其中之一

{
    "op": "must",
    "field": "region",
    "conds": ["cn", "sg"]
}

示例二:​status值必须属于1,2,3其中之一

{
    "op": "must",
    "field": "status",
    "conds": [1, 2, 3]
}

must_not

  • Int32
  • Int64
  • String
  • Bool
  • Array
  • Array
  • Array

目标字段值必须不在 [...] 之中,即 "must not in"。

status值必须不能为1,2,3其中任何一个

{
    "op": "must_not",
    "field": "status",
    "conds": [1, 2, 3]
}

range

  • Int32
  • Int64
  • Float

目标数值字段值必须在指定范围内。
配置使用gte(大于等于), gt(大于), lte(小于等于), lt(小于),用以圈定一维范围。

price >= 100.0

//
{
  "op": "range",
  "field": "price",
  "gte": 100.0
}

price 在100.0到500.0之间

{
  "op": "range",
  "field": "price",
  "gte": 100.0,
  "lt": 500.0
}

and

不涉及

逻辑算子,针对逻辑查询需求,对多个条件取交集。

{
  "op": "and",
  "conds": [     // 条件列表,支持嵌套and/or/must/must_not/range 算子
    {
      "op": "must",
      "field": "status",
      "conds": [1, 2, 3]
    },
    {
        ...         // 支持>=1的任意数量的条件进行组合
    }
  ]
}

or

不涉及

逻辑算子,针对逻辑查询需求,对多个条件取并集。

{
  "op": "or",
  "conds": [ // 条件列表,支持嵌套and/or/must/must_not/range 算子
    {
      "op": "must",
      "field": "status",
      "conds": [1, 2, 3]
    },
    {
        ...      // 支持>=1的任意数量的条件进行组合
    }
  ]
}

Context

参数

示例值

描述

location

{
    "latitude": "12.12",
    "longitude": "-13.43"
}
  1. 支持传入用户位置,用于用户地理位置提权与降权物品配置。传入数据格式必须是字符串
  2. 若输入不合法,平台会自动忽略 LBS 配置。

响应参数

请求响应

参数

类型

示例值

描述

request_id

String

25ee998a-5462-9385-9f18-035f1da7a6e5

用于唯一标识一次请求,可根据request_id快速定位一次请求的执行。

spell_correction

SpellCorrection

触发搜索词纠正时,返回搜索纠正的模式配置和纠正后的搜索词建议。

result

Result

搜索结果。

total_items

Int

200

返回的搜索结果总数

数据结构

SpellCorrection

参数

类型

示例值

描述

mode

String

"suggestion_only"

在控制台配置的纠错模式,返回2个枚举值:

  • "suggestion_only":仅在接口返回建议的搜索词,使用用户上传的原始搜索词搜索
  • "auto":自动使用纠错后的搜索词检索
  • "off":没有在控制台打开搜索词纠正功能

corrected_query

String

"4K显示屏电视"

纠正后的搜索query,返回空时代表没有需要纠错的搜索词

Result

参数

类型

示例值

描述

search_results

Array<SearchResult>

搜索结果列表。

total_items

Int

300

搜索结果总量,即候选数量。可在应用配置中调整最大召回物品量,但最终的数量取决于数据源中相关数据的总量。

SearchResult

参数

类型

示例值

描述

_id

String

"WSHOE001"
"video_900026"

该数据在数据存储中的主键,源于您上传内容中字段属性为唯一标识的字段的值。

display_fields

Object

图文数据:

{
    "item_id": "WSHOE001",
    "title": "舒适通勤 尖头浅口高跟鞋 - 黑色",
    "category": "女士高跟鞋",
    "status": 1
}

视频数据:

{
  "_video_generated_summary":"叶文洁为防止发射信号的事被雷志成上报,制造故障引其和杨卫宁下悬崖并锯断绳子将二人杀害,史强因核辐射住院,叶文洁回忆起在齐家屯感受到人间温暖及后续经历,同时作战中心截获三体信息,汪淼和史强进入三体游戏遇到 1379 号监听员。"
  "video generated title":"叶文洁承认杀害雷志成",
  "content_id":"video_900026",
  "content_type":"video",
  "parent_content_id":"collection_342534",
  "sequence_index":26,
  "video_url":["http://xxxx.mp4"],
  "my_title":"三体第二十六集"
}

数据集其他字段,与数据导入时的字段一致。

score

Float

0.852

多路召回合并后的分数

recall_info

Array

[
    {
        "recall_reason": "text'",
        "recall_score": 0.7
    },
    {
        "recall_reason": "vlm'",
        "recall_score": 0.5
    }
]

记录每一路召回的信息。
recall_reason 指召回方式,目前支持两种“text-文本召回;vlm-图片召回
recall_score 指在该路召回时的相关性分数

rerank_info

Object

{
    "is_reranked": true,
    "rerank_score":0.993242
}

召回数据重排信息,表示该数据是否是否重排以及重排得分;未重排的数据不存在rerank_score字段。

接口示例

关联图文数据集的应用

请求示例

curl -X POST 'https://aisearch.cn-beijing.volces.com/api/v1/application/${application_id}/search' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <API Key>' \
  -d '{
    "query": {
        "text": "女鞋 春夏"
    },
    "page_number": 1,
    "page_size": 5,
    "user": {
        "_user_id": "ldy_199432"
    },
    "filter": {
        "op": "must",
        "field": "status",
        "conds": [1, 2]
    },
    "dataset_id": "106265704",
    "context": {
        "location":{
            "latitude": "12.12",
            "longitude": "-13.43"
        }
    }
}'

响应示例

{
    "request_id": "25ee998a-5462-9385-9f18-035f1da7a6e5",
    "result": {
        "search_results": [
            {
                "_id": "WSHOE001",
                "display_fields": {
                    "item_id": "WSHOE001",
                    "title": "舒适通勤 尖头浅口高跟鞋 - 黑色",
                    "category": "女士高跟鞋",
                    "status": 1,
                    "images": [
                        {
                            "image_url": "https://example.com/images/womens_pump_black.jpg"
                        }
                    ]
                }
            },
            {
                "_id": "WSHOE002",
                "display_fields": {
                    "item_id": "WSHOE002",
                    "title": "轻便网面 跑步运动鞋 - 粉色拼灰色",
                    "category": "女士运动鞋",
                    "status": 1,
                    "images": [
                        {
                            "image_url": "https://example.com/images/womens_sneaker_pink.jpg"
                        }
                    ]
                }
            },
            {
                "_id": "WSHOE003",
                "display_fields": {
                    "item_id": "WSHOE003",
                    "title": "波西米亚风格 坡跟凉鞋 - 米色",
                    "category": "女士凉鞋",
                    "status": 2,
                    "images": [
                        {
                            "image_url": "https://example.com/images/womens_sandal_beige.jpg"
                        }
                    ]
                }
            }
        ],
        "spell_correction": {
            "mode":"off"
        }
        "total_items": 300
    }
}

关联视频数据集的应用

请求示例

curl -X POST 'https://aisearch.cn-beijing.volces.com/api/v1/application/${application_id}/search' \ 
  -H 'Content-Type: application/json' \ 
  -H 'Authorization: <火山鉴权的一系列相关header>' \ 
  -d '{ 
    "query": { 
        "text": "科幻片" 
    }, 
    "page_number": 1, 
    "page_size": 5, 
    "user": { 
        "_user_id": "ldy_199432" 
    }, 
    "filter": {
        "op": "must",
        "field": "director",
        "conds": ["郭帆"]
    },
    "dataset_id": "106265704",
    "context": {
        "location":{
            "latitude": "12.12",
            "longitude": "-13.43"
        }
    }
}' 

响应示例

{
    "request_id": "25ee998a-5462-9385-9f18-035f1da7a6e5",
    "result": {
        "search_results": [
            {
                "_id": "video_900026",
                "display_fields": {
                    "content_id": "video_900026",
                    "content_type": "video",
                    "parent_content_id": "collection_342534",
                    "sequence_index": 26,
                    "video_url": [
                        "http://xxxx.mp4"
                    ],
                    "my_title": "三体第二十六集"
                }
            },
            {
                "_id": "video_900027",
                "display_fields": {
                    "content_id": "video_900027",
                    "content_type": "video",
                    "parent_content_id": "collection_342534",
                    "sequence_index": 27,
                    "video_url": [
                        "http://xxxx.mp4"
                    ],
                    "my_title": "三体第二十七集"
                }
            },
            {
                "_id": "video_900028",
                "display_fields": {
                    "content_id": "video_900028",
                    "content_type": "video",
                    "parent_content_id": "collection_342534",
                    "sequence_index": 28,
                    "video_url": [
                        "http://xxxx.mp4"
                    ],
                    "my_title": "三体第二十八集"
                }
            }
        ],
        "spell_correction": {
            "mode":"auto",
            "corrected_query":"三体电视剧集"
        }
        "total_items": 300
    }
}

错误处理

错误码

本接口错误码请参见公共错误码文档。