IQS UnifiedSearch LiteAdvanced引擎

更新时间:
复制为 MD 格式

本文介绍UnifiedSearch(IQS 统一搜索)的接口参数以及使用方法。轻量版引擎介绍:轻量版(LiteAdvanced)搜索引擎

接口定义

请求参数

参数

类型

必填

默认值

描述

示例值

query

string

-

搜索问题。取值范围:1~1024个字符。

苹果手机

timeRange

string

NoLimit

查询的时间范围。支持可选值:

  • OneDay:1天内

  • OneWeek:1周内

  • OneMonth:1月内

  • OneYear:1年内

  • NoLimit:无限制(默认值)

NoLimit

category

string

null

查询分类,指定后只返回category圈定的站点的搜索结果,多个行业使用逗号分隔。支持可选值:

  • finance:金融

  • law:法律

  • medical:医疗

  • internet:互联网(精选)

  • tax:税务

  • news_province:新闻省级

  • news_center:新闻中央

说明

一般通用场景,不要指定category,会影响召回效果。

engineType

string

LiteAdvanced

搜索的引擎类型,不同引擎价格与结果会有差异。支持可选值:

  • LiteAdvanced

LiteAdvanced

contents

mainText

bool

false

是否返回长正文。

false

markdownText

bool

false

是否返回markdown格式正文。

false

summary

bool

false

是否返回增强摘要。收费选项;

false

rerankScore

bool

true

是否进行检索结果的Rerank,并返回rerankScore。

true

advancedParams

map<string, string>

{}

高级检索参数:

  • startPublishedDate:网页发布时间(开始),支持格式:

    • 2025-07-01

    • 2025-07-01 12:10:00

  • endPublishedDate:网页发布时间(结束)支持格式同上

  • numResults:返回条数(1-50)

  • includeSites:包含的域名,多个使用逗号分隔,最多100域名

  • excludeSites:排除的域名,多个使用逗号分隔,最多100域名

{
  "numResults": "10",
  "startPublishedDate": "2025-07-01",
  "endPublishedDate": "2025-07-31"
}

返回参数

字段

类型

是否可空

字段说明

样例 (Query: 上海车展最火爆的是哪个品牌

requestId

string

不可空

请求RequestId, 排查问题时可以提供此信息

35E5608A-A737-2038-384D-D9D34C6BFD9E

pageItems[]

title

string

不可空

网站标题

上海车展大佬齐聚 问界成为话题中心

link

string

不可空

网站地址

-

snippet

string

不可空

网页动态摘要,匹配到关键字的部分内容,平均长度150字符

说明

engineType=LiteAdvanced时,返回的长度约500字,信息更多,此时无需使用summary。

-

publishedTime

string

可空

网页发布时间,ISO时间格式。

2025-04-27T20:36:04+08:00

mainText

string

可空

解析得到的网页全正文,长度最大3000字符,召回比例超过98%;

说明

开启contents.mainText时返回

-

markdownText

string

可空

解析得到的网页全文markdown格式,对表格等结构化信息有更好的支持,目前召回比例约50%,待持续提高。

说明

开启contents.markdownText时返回

-

images

string[]

可空

网页中的图片地址。

-

hostname

string

可空

网页的站点名称

中华网

hostLogo

string

可空

网页的站点Logo

-

summary

string

可空

从网页全正文中提取出与查询(Query)最相关的信息,用于提供增强摘要,默认长度约500

说明

开启contents.summary时返回

-

rerankScore

double

可空

使用rerank模型对引擎召回结果进行重排序,相关性会有提升。

说明

开启contents.rerankScore时返回,并影响排序

0.7786493301391602

websiteAuthorityScore

int32

可空

静态站点权威分,仅由网站自身决定,可参考静态权威分评分标准

2

searchInformation

searchTime

int64

不可空

搜索耗时

1048

queryContext

engineType

string

不可空

搜索的引擎类型

LiteAdvanced

originalQuery

query

string

不可空

原始请求:query

现在伦敦时间

timeRange

string

不可空

原始请求:timeRange

NoLimit

rewrite

enabled

bool

不可空

本次请求是否开启改写

false

timeRange

string

可空

改写后的timeRange,只有改写后的值与原始timeRange不一致时,才会返回。

-

costCredits

search

genericTextSearch

int32

不可空

基础文本搜索次数;计量计费信息请参考:产品计费说明

1

liteAdvancedTextSearch

int32

不可空

轻量版文本搜索次数;计量计费信息请参考:产品计费说明

0

valueAdded

summary

int32

不可空

增值包-增强摘要次数

1

advanced

int32

不可空

增值包-增强版搜索次数

0

示例

  • 请求参数(RequestBody)

{
  "query": "2025跨年晚会周深齐豫欢颜",
  "engineType": "LiteAdvanced",
  "contents": {
    "mainText": false,
    "markdownText":false,
    "summary": false,
    "rerankScore": true
  },
  "advancedParams": {
    "numResults": "2",
    "startPublishedDate": "2024-12-01",
    "endPublishedDate": "2025-01-31"
  }
}
  • 返回参数

{
  "requestId": "09277650-90de-468e-b299-09048b1c149d",
  "pageItems": [
    {
      "title": "2025北京卫视跨年之夜(2024.12.31) 周深、齐豫合唱《欢颜》",
      "link": "https://m.youku.com/video/id_XNjQ0ODQ5MTk3Mg==.html?source=",
      "snippet": "2025北京卫视<em>跨年</em>之夜(2024.12.31)<em>周深</em>、<em>齐豫</em>合唱《<em>欢颜</em>》是在优酷播出的综艺高清视频,于2025-01-02 22:02:01上线。视频内容简介:2025北京卫视<em>跨年</em>之夜(2024.12.31)<em>周深</em>、<em>齐豫</em>合唱《<em>欢颜</em>》",
      "publishedTime": "2024-12-31T00:00:00+08:00",
      "mainText": null,
      "markdownText": null,
      "images": [
        "https://m.ykimg.com/0542060167769AAC39525FBC7104B9EC"
      ],
      "hostname": "优酷视频",
      "hostLogo": "https://s2.zimgs.cn/ims?kt=url&at=smstruct&key=aHR0cHM6Ly9ndy5hbGljZG4uY29tL0wxLzcyMy8xNTYyODM2MzEzL2ZiL2VmLzkyL2ZiZWY5MmQwNDlhMGViMWZkMWM0MTI0ZjNjMmQzMDAwLmpwZw==&sign=yx:4iAKsNYcDPoZnsM8V51ZWwFQdW0=&tv=400_400",
      "summary": null,
      "rerankScore": 0.9996540546417236,
      "websiteAuthorityScore": 2
    },
    {
      "title": "#周深齐豫合唱欢颜#",
      "link": "https://m.weibo.cn/status/P7rt709xu",
      "snippet": "#周深齐豫合唱欢颜#  没有人能逃过周深《欢颜》的 “魔法”,尤其是跨年版本。他的歌声如同一幅绚丽的画卷,在跨年的时刻徐徐展开。每一年都盼着他的歌声跨年,这次与齐豫合唱,必将为画卷增添浓墨重彩的一笔。 ​​​​k 收起 查看大图",
      "publishedTime": "2024-12-31T20:18:00+08:00",
      "mainText": null,
      "markdownText": null,
      "images": [],
      "hostname": "微博",
      "hostLogo": "https://s2.zimgs.cn/ims?kt=url&at=smstruct&key=aHR0cHM6Ly9ndy5hbGljZG4uY29tL0wxLzcyMy8xNTg0MzMwMjI4LzNkL2RhLzYwLzNkZGE2MDFlY2VlMmI2NGU3ZjAwNzdlMjYzZTA2YTI2Lmljbw==&sign=yx:ODPA0xcJzTX_28mEs3rV87Z1pvw=&tv=400_400",
      "summary": null,
      "rerankScore": 0.9994966983795166,
      "websiteAuthorityScore": 2
    }
  ],
  "sceneItems": [],
  "searchInformation": {
    "searchTime": 774
  },
  "queryContext": {
    "engineType": "LiteAdvanced",
    "originalQuery": {
      "query": "2025跨年晚会周深齐豫欢颜",
      "timeRange": "NoLimit"
    },
    "rewrite": {
      "enabled": false,
      "timeRange": null
    }
  },
  "costCredits": {
    "search": {
      "genericTextSearch": 0,
      "liteAdvancedTextSearch": 1
    },
    "valueAdded": {
      "summary": 0,
      "advanced": 0
    }
  }
}

错误码

Status

错误码

错误信息

处理方案

404

InvalidAccessKeyId.NotFound

Specified access key is not found.

检查并确保AccessKey/Secret正确。

403

Retrieval.NotActivate

Please activate AI search service

请下单或联系您的客户经理进行开通。

403

Retrieval.Arrears

Please recharge first.

账户金额不足,请充值。

403

Retrieval.NotAuthorised

Please authorize the AliyunIQSFullAccess privilege to the sub-account.

子账号没有进行授权,参考创建RAM用户并授权

403

Retrieval.TestUserPeriodExpired

The test period has expired.

测试已到期(自下单后15天有效),可以联系阿里云客户经理转正式。

429

Retrieval.Throttling.User

Request was denied due to user flow control.

超出限流规格,可联系阿里云客户经理进行升配。

429

Retrieval.TestUserQueryPerDayExceeded

The query per day exceed the limit.

测试超出日限额(1000次/天),可以联系阿里云客户经理转正式。

400

Retrieval.InvalidPublishedDate

The specified parameter 'startPublishedDate' has an invalid date format. The correct format should be 'yyyy-MM-dd'.

高级检索的发布开始时间格式错误。

接口调用

SDK调用

使用阿里云AK/SK认证方式,并使用阿里云SDK发起接口调用

Python SDK

前提条件

您需要确保已安装Python3.8或以上版本。

安装SDK
pip3 install alibabacloud_iqs20241111==1.6.1
调用代码
  • 同步调用

import os

from Tea.exceptions import TeaException
from alibabacloud_iqs20241111 import models
from alibabacloud_iqs20241111.client import Client
from alibabacloud_tea_openapi import models as open_api_models


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> Client:
        config = open_api_models.Config(
            # TODO: 使用您的AK/SK进行替换(建议通过环境变量加载)
            access_key_id='$YOUR_ACCESS_KEY',
            access_key_secret='$YOUR_ACCESS_SECRET'
        )
        config.endpoint = f'iqs.cn-zhangjiakou.aliyuncs.com'
        return Client(config)

    @staticmethod
    def main() -> None:
        client = Sample.create_client()
        run_instances_request = models.UnifiedSearchRequest(
            body=models.UnifiedSearchInput(
                query='杭州美食',
                time_range='NoLimit',
                engine_type='LiteAdvanced',
                contents=models.RequestContents(
                    summary=False,
                    main_text=True,
                ),
                advanced_params=dict(
                    numResults="20",
                    startPublishedDate="2025-01-01"
                )
            )
        )
        try:
            response = client.unified_search(run_instances_request)
            print(
                f"api success, request_id:{response.body.request_id}, size :{len(response.body.page_items)}, server_cost:{response.body.search_information.search_time}")
            if len(response.body.scene_items) > 0:
                print(f"scene_items:{response.body.scene_items[0]}")
            for index, item in enumerate(response.body.page_items):
                print(f"{index}. {'-' * 20}")
                print(f"title:{item.title}")
                print(f"snippet:{item.snippet}")
                print(f"summary:{item.summary}")
                print(f"published_time:{item.published_time}")
                print(f"link:{item.link}")
                print(f"rerank_score:{item.rerank_score}")

        except TeaException as e:
            code = e.code
            request_id = e.data.get("requestId")
            message = e.data.get("message")
            print(f"api exception, requestId:{request_id}, code:{code}, message:{message}")


if __name__ == '__main__':
    Sample.main()
  • 异步调用

import asyncio
import os
import time

from Tea.exceptions import TeaException
from alibabacloud_iqs20241111 import models
from alibabacloud_iqs20241111.client import Client
from alibabacloud_tea_openapi import models as open_api_models


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> Client:
        config = open_api_models.Config(
            # TODO: 使用您的AK/SK进行替换(建议通过环境变量加载)
            access_key_id=os.environ.get('ACCESS_KEY'),
            access_key_secret=os.environ.get('ACCESS_SECRET')

        )
        config.endpoint = f'iqs.cn-zhangjiakou.aliyuncs.com'
        return Client(config)

    @staticmethod
    async def main_async() -> None:
        start = time.time()
        client = Sample.create_client()
        run_instances_request = models.UnifiedSearchRequest(
            body=models.UnifiedSearchInput(
                query='杭州美食',
                time_range='NoLimit',
                contents=models.RequestContents(
                    summary=False,
                    main_text=True,
                )
            )
        )
        try:
            # 使用异步方法
            response = await client.unified_search_async(run_instances_request)
            print(
                f"api success, request_id:{response.body.request_id}, size :{len(response.body.page_items)}, server_cost:{response.body.search_information.search_time}")
            if len(response.body.scene_items) > 0:
                print(f"scene_items:{response.body.scene_items[0]}")
            for index, item in enumerate(response.body.page_items):
                print(f"{index}. {'-' * 20}")
                print(f"title:{item.title}")
                print(f"snippet:{item.snippet}")
                print(f"summary:{item.summary}")
                print(f"published_time:{item.published_time}")
                print(f"link:{item.link}")
                print(f"rerank_score:{item.rerank_score}")
        except TeaException as e:
            code = e.code
            request_id = e.data.get("requestId")
            message = e.data.get("message")
            print(f"api exception, requestId:{request_id}, code:{code}, message:{message}")

if __name__ == '__main__':
    asyncio.run(Sample.main_async())

Java SDK

前提条件

已安装Java8或以上版本。

Maven依赖
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>iqs20241111</artifactId>
    <version>1.6.1</version>
</dependency>
调用代码
package com.aliyun.iqs.example;

import com.aliyun.iqs20241111.Client;
import com.aliyun.iqs20241111.models.*;
import com.aliyun.teaopenapi.models.Config;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class UnifiedSearchExample {
    public static void main(String[] args) throws Exception {
        Client client = initClient();
        invoke(client, "杭州美食", "NoLimit");
    }

    private static Client initClient() throws Exception {
        // TODO: 使用您的AK/SK进行替换(建议通过环境变量加载)
        String accessKeyId = "$YOUR_ACCESS_KEY";
        String accessKeySecret = "$YOUR_ACCESS_SECRET";
        
        Config config = new Config()
            .setAccessKeyId(accessKeyId)
            .setAccessKeySecret(accessKeySecret);

        config.setEndpoint("iqs.cn-zhangjiakou.aliyuncs.com");
        return new Client(config);
    }

    private static void invoke(Client client, String query, String timeRange) {
        UnifiedSearchInput input = new UnifiedSearchInput();
        input.setQuery(query);
        input.setTimeRange(timeRange);
        
        // 使用LiteAdvanced引擎,并使用高级检索参数
        input.setEngineType("LiteAdvanced");
        Map<String, String> advancedParams = new HashMap<>();
        advancedParams.put("numResults", "5");
        advancedParams.put("startPublishedDate", "2025-08-01");
        advancedParams.put("excludeSites", "baidu.com,sina.cn");
        input.setAdvancedParams(advancedParams);

        RequestContents requestContents = new RequestContents().setSummary(false).setMainText(false);
        input.setContents(requestContents);
        UnifiedSearchRequest request = new UnifiedSearchRequest().setBody(input);

        try {
            UnifiedSearchResponse response = client.unifiedSearch(request);
            UnifiedSearchOutput result = response.getBody();

            printOutput(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void printOutput(UnifiedSearchOutput output) {
        // 使用 GsonBuilder 创建带格式化的 Gson 实例
        Gson gson = new GsonBuilder()
            .setPrettyPrinting()
            .disableHtmlEscaping()
            .create();

        // 输出格式化的 JSON
        String prettyJson = gson.toJson(output);
        System.out.println(prettyJson);
    }
}

HTTP调用

使用信息查询服务(IQS)产品的凭证(API-KEY)进行认证,并使用HTTP发起接口调用。创建并查看凭证,获取API-KEY。

LiteAdvanced

curl  -X POST https://cloud-iqs.aliyuncs.com/search/unified \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
--data '{
  "query": "杭州美食",
  "engineType": "LiteAdvanced",
  "contents": {
    "mainText": false,
    "markdownText":false,
    "summary": false
  },
  "advancedParams":{
    "numResults": "2",
    "startPublishedDate": "2025-07-01",
    "excludeSites":"aliyun.com,sina.cn"
  }
}'
重要

$API_KEY 替换为信息查询服务控制台中创建的API-KEY,创建并查看凭证创建API-KEY需要等待5min生效。