文档

结构化信息搜索API

更新时间:

通用参数

入参

字段

类型

说明

默认值

serviceId

long

服务id

101

uq

string

用户输入检索值

type

string

检索类型

动态适配

queries

List<map<string, object>>

检索条件

[]

filters

List<map<string, object>>

过滤条件

[]

fields

array

召回字段(正排)

[]

page

int

分页(页码)

1

rows

int

分页(行数)

10

customConfigInfo

map<string, object>

自定义干预配置

{}

debug

boolean

调试信息

type字段说明

用户输入检索值与索引进行匹配的字段列表,用英文逗号分割。

示例:"index1,index2,index3"

queries&filter字段说明

联合uq条件检索召回,queries检索条件参与最终分数计算,filters检索条件仅对检索的结果做过滤干预。

  • 检索条件支持子分组,子分组之间默认是AND语义

    • 子分组内字段支持_operator=AND/OR逻辑运算符,默认是AND语义(大小写不敏感)

    • 子分组内字段支持_conditions=[]嵌套子条件,子条件间逻辑关系默认继承于父分组的_operator逻辑运算符,也可通过_conditions_operator=AND/OR自定义,子条件用法可参考queries参数

  • 子分组内过检索件字段支持单值、多值及区间查询

    • 单值:数值、字符串

    • 多值:数值、字符串组成的数组

    • 关系:支持eqneqlike属性,一个字段不可配置多个(大小写不敏感)

    • 区间:支持gtgteltlte属性,其值建议为数值类型(大小写不敏感)

示例

{
    "queries":[
        {
            "singleQuery": "stringValue",                   // 单值查询
            "multiQuery": ["stringValue1", "stringValue2"], // 多值查询
            "logicQuery": {                                 // 逻辑查询
                "like": "prefix"
            },
            "rangeQuery": {                                 // 范围查询
                "gte": intValue,
                "lte": intValue
            },
            "_conditions": [                                // 嵌套子查询条件
                {
                    "singleQuery": intValue
                }
            ]
        },
        {
            "_operator": "OR", 				    // 多条件OR查询(SDK自动生成)
            "singleQuery": "stringValue"
        }
    ]
}

customConfigInfo字段说明

自定义干预配置,如果用户自定义queries检索条件,可以不用配置;如果用户希望使用算法生成的queries语法,需要传入qsp相关参数。

字段

类型

说明

qsp

bool

是否开启qsp服务

qspSchema

List<map<string, object>>

算法生成queries依赖的索引字段描述

qspSchema字段说明

qspSchema字段类型是List<map<string, object>>,每个map包含需要算法构建queries检索条件的字段描述。

字段

类型

说明

name

string

索引字段名

type

string

索引字段类型

desc

string

索引字段描述,中文短语,10字以内

其中type字段与结构化信息搜索使用的引擎有关,只能出现引擎支持的类型。

出参

字段

类型

说明

默认值

requestId

string

请求id

xxxx

status

int

请求结果状态

0

message

string

响应信息

data.total

int

检索总数

0

data.docs

array(map/dict/json)

检索结果

[]

debug

map<string, object>

调试信息

HTTP调用

鉴权token获取

鉴权的TOKEN可通过POP SDK中的 PostMSConvSearchTokenGenerated接口获取 在获取的token值前加上"Bearer "头封装到Authorization的header中。

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>alinlp20200629</artifactId>
  <version>2.7.2</version>
</dependency>

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.6.0</version>
</dependency>
    public static void main(String[] args) throws Exception {
        Config config = new Config();
        config.setEndpoint("alinlp.cn-beijing.aliyuncs.com");
        config.setAccessKeyId("xxxx");
        config.setAccessKeySecret("xxxx");
        Client client = new Client(config);
        PostMSConvSearchTokenGeneratedResponse response = client.postMSConvSearchTokenGenerated();
        System.out.println(JacksonUtils.toJson(response));
    }
{
  "body" : {
    "code" : 200,
    "data" : "OQ25BJFGnMhUJ8NWpATLfcf2VW820vzGbXP5Us/qGdtwn338qSOLwkzyCnbmBD+t7AboAuvYzp5pujlKXfy90KSAnQVVVb/v15w7K+BkozM=",
    "httpStatusCode" : 200,
    "requestId" : "184B7122-B9EF-14BC-B974-7D013A601FE8",
    "success" : true
  },
  "headers" : {
    "access-control-allow-origin" : "*",
    "access-control-expose-headers" : "*",
    "connection" : "keep-alive",
    "content-length" : "217",
    "content-type" : "application/json;charset=utf-8",
    "date" : "Tue, 02 Jan 2024 07:32:08 GMT",
    "etag" : "2khQ+DZUrns9GU5hL39GwUQ7",
    "keep-alive" : "timeout=25",
    "x-acs-request-id" : "184B7122-B9EF-14BC-B974-7D013A601FE8",
    "x-acs-trace-id" : "ec5e93d7765a4df394f82da31c6a729e"
  },
  "statusCode" : 200
}

HTTP请求

请求入参

字段

类型

说明

默认值

headers

map/dict/json

请求头信息

{}

Authorization

string

鉴权信息

Bearer toY1FWrNAjvWkOmp24+UQFIi2PsYzbhNBq+yJmzumNmXw3sro3oOt9Kde5kzLcc4

访问域名

https://nlp.aliyuncs.com

URL

https://nlp.aliyuncs.com/msearch/api/searchEnhance

 curl -i -X POST \
   -H "Content-Type:application/json" \
   -H "Authorization:Bearer OQ25BJFGnMhUJ8NWpATLfcf2VW820vzGbXP5Us/qGdtwn338qSOLwkzyCnbmBD+t7AboAuvYzp5pujlKXfy90KSAnQVVVb/v15w7K+BkozM=" \
   -d \
'{
    "uq": "ECS管理控制台:具有交互式操作的Web服务页面",
    "type": "title,content,keywords",
    "serviceId":23,
    "page": 1,
    "rows": 5
}' \
 'https://nlp.aliyuncs.com/msearch/api/searchEnhance'
{
    "requestId": null,
    "data": {
        "total": 3,
        "docs": [
            {
                "_rc_score": 19.05915,
                "keywords": "",
                "b_id": "25367",
                "gmt_modified_origin": "2022-09-26 18:26:12",
                "_q_score": 1.0,
                "id": 0,
                "_id": "0",
                "title": "什么是云服务器ECS",
                "_score": 19.05915,
                "content":"云服务器ECS(ElasticComputeService)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(InfrastructureasaService)级别云计算服务。" 
            },
            {
                "_rc_score": 10.70154,
                "keywords": "开发指南",
                "b_id": "42431",
                "gmt_modified_origin": "2023-01-06 11:07:33",
                "_q_score": 0.5614909374237571,
                "id": 37,
                "_id": "37",
                "title": "配置加速域名",
                "_score": 10.70154,
                "content": "媒体处理服务支持分发加速功能,可以对指定网站上的业务实现资源访问加速。如果您有加速需求,建议您将需要加速的网站作为源站,为其创建加速域名。"
            },
            {
                "_rc_score": 8.819408,
                "keywords": "操作指南",
                "b_id": "59977",
                "gmt_modified_origin": "2023-02-15 09:42:23",
                "_q_score": 0.4627387895053032,
                "id": 89,
                "_id": "89",
                "title": "突发性能实例概述",
                "_score": 8.819408,
                "content": "突发性能实例是一种面向入门级计算场景,应对突发性能需求的经济型实例规格。本文介绍突发性能实例规格族的特点和应用场景,以及基准性能、CPU积分、性能模式等概念,并列出了具体的实例规格。"
            }
        ]
    },
    "status": 0,
    "debug": null,
    "message": null
}

SDK调用

Java SDK

Maven依赖

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>alinlp20200629</artifactId>
  <version>2.7.2</version>
</dependency>

<!--出现java.lang.NoSuchMethodError: com.aliyun.credentials.Client.getCredential()Lcom/aliyun/credentials/models/CredentialModel;异常则引入-->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>credentials-java</artifactId>
    <version>0.3.0</version>
</dependency>

Java示例代码

public static void main(String[] args) throws Exception {
        Config config = new Config();
        config.setEndpoint("alinlp.cn-beijing.aliyuncs.com");
        config.setAccessKeyId("xxxx");
        config.setAccessKeySecret("xxxx");
        Client client = new Client(config);
        PostMSSearchEnhanceRequest postMSSearchEnhanceRequest = new PostMSSearchEnhanceRequest();
        postMSSearchEnhanceRequest.setServiceId(1555L);
        postMSSearchEnhanceRequest.setUq("阿里云");
        postMSSearchEnhanceRequest.setPage(1);
        postMSSearchEnhanceRequest.setRows(5);
        postMSSearchEnhanceRequest.setType("name,title,content");
        postMSSearchEnhanceRequest.setFields(Lists.newArrayList("name","title", "content"));
        // 运行时参数超时设置,仅对使用了该运行时参数实例的请求有效
        RuntimeOptions runtimeOptions = new RuntimeOptions();
        runtimeOptions.connectTimeout = 5000;
        runtimeOptions.readTimeout = 10000;
        PostMSSearchEnhanceResponse response = client.postMSSearchEnhanceWithOptions(postMSSearchEnhanceRequest, runtimeOptions);
        System.out.println(JacksonUtils.toJson(response));
    }

响应示例:
{
  "body" : {
    "code" : 200,
    "data" : {
      "data" : {
        "docs" : [
          {
            "_id" : "3459649677041723584_2",
            "_q_score" : 1,
            "_rc_score" : 11.952197,
            "_score" : 11.952197,
            "content" : " • 本文档仅作为用户使用阿里云产品及服务的参考性指引,阿里云以产品及服务的“现状”、“有缺陷”和“当前功能”的状态提供本文档。阿里云在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但阿里云在此明确声明对本文档内容的准确性、完整性、适用性、可靠性等不作任何明示或暗示的保证。任何单位、公司或个人因为下载、使用或信赖本文档而发生任何差错或经济损失的,阿里云不承担任何法律责任。在任何情况下,阿里云均不对任何间接性、后果性、惩戒性、偶然性、特殊性或刑罚性的损害,包括用户使用或信赖本文档而遭受的利润损失,承担责任(即使阿里云已被告知该等损失的可能性)。 • 阿里云网站上所有内容,包括但不限于著作、产品、图片、档案、资讯、资料、网站架构、网站画面的安排、网页设计,均由阿里云和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权、商业秘密等。非经阿里云和/或其关联公司书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容",
            "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
            "title" : ""
          },
          {
            "_id" : "3459649677041723584_3",
            "_q_score" : 0.98918508454972753,
            "_rc_score" : 11.822934999999999,
            "_score" : 11.822934999999999,
            "content" : "非经阿里云和/或其关联公司书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容。此外,未经阿里云事先书面同意,任何人不得为了任何营销、广告、促销或其他目的使用、公布或复制阿里云的名称(包括但不限于单独为或以组合形式包含“阿里云”、“Aliyun”、“万网”等阿里云和/或其关联公司品牌,上述品牌的附属标志及图案或任何类似公司名称、商号、商标、产品或服务名称、域名、图案标示、标志、标识或通过特定描述使第三方能够识别阿里云和/或其关联公司)。 • 如若发现本文档存在任何错误,请与阿里云取得联系",
            "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
            "title" : ""
          },
          {
            "_id" : "3459649677041723584_4",
            "_q_score" : 0.96916625453880978,
            "_rc_score" : 11.583665999999999,
            "_score" : 11.583665999999999,
            "content" : " 阿里云文字识别OCR 阿里云文字识别OCR/目录 文档版本:20230509 3 目录 法律声明.................................................................................................................................................................................... 2 目录 3 前言 4 概述................................................................................................................................................................................................................4",
            "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
            "title" : ""
          },
          {
            "_id" : "3459649677041723584_73",
            "_q_score" : 0.96650933715366305,
            "_rc_score" : 11.551909999999999,
            "_score" : 11.551909999999999,
            "content" : "支持同一文件或图片内卡证票据混贴检测、识别,能够实现在财务票据混贴、个人证照混贴等场景下的自动分类、关键有效信息精准识别和结构化提取,极大提升 OCR能力在财务自动化、办公自动化及各类行业应用中的技术效能。 阿里云文字识别OCR 阿里云文字识别OCR/产品功能 文档版本:20230509 30 阿里云文字识别OCR 阿里云文字识别OCR/产品规格 文档版本:20230509 31 3. 产品规格",
            "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
            "title" : "电子面单识别 ii.混贴票据识别"
          },
          {
            "_id" : "3459649677041723584_42",
            "_q_score" : 0.93509536363900292,
            "_rc_score" : 11.176444,
            "_score" : 11.176444,
            "content" : "精准识别银行开户许可证中的账号、核准号、企业名称、法人姓名以及开户行等关键信息。 阿里云文字识别OCR 阿里云文字识别OCR/产品功能 文档版本:20230509 15",
            "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
            "title" : "银行开户许可证识别"
          }
        ],
        "total" : 108
      },
      "requestId" : "F861AC34-7F30-15A6-AE92-FD788525036F",
      "status" : 0
    },
    "httpStatusCode" : 200,
    "requestId" : "F861AC34-7F30-15A6-AE92-FD788525036F",
    "success" : true
  },
  "headers" : {
    "access-control-allow-origin" : "*",
    "access-control-expose-headers" : "*",
    "connection" : "keep-alive",
    "content-type" : "application/json;charset=utf-8",
    "date" : "Tue, 02 Jan 2024 07:18:54 GMT",
    "keep-alive" : "timeout=25",
    "transfer-encoding" : "chunked",
    "vary" : "Accept-Encoding",
    "x-acs-request-id" : "F861AC34-7F30-15A6-AE92-FD788525036F",
    "x-acs-trace-id" : "e6e485a286ccb89ce0008022f62682c9"
  },
  "statusCode" : 200
}

Python SDK

pip源

Pypi

pip install alibabacloud_alinlp20200629==2.8.2

Python示例代码

import json

from alibabacloud_alinlp20200629 import client
from alibabacloud_tea_openapi import models as api_models
from alibabacloud_tea_util.models import RuntimeOptions
from alibabacloud_alinlp20200629 import models
import os


def searchEnhance():
    config = api_models.Config(access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
                               access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
                               region_id="cn-beijing")
    nlp_client = client.Client(config)
    request = models.PostMSSearchEnhanceRequest()
    request.service_id = 1555
    request.uq = '阿里云'
    request.page = 1
    request.rows = 5
    request.type = "name,title,content"
    runtime_options = RuntimeOptions(connect_timeout=5000, read_timeout=10000)
    response = nlp_client.post_mssearch_enhance_with_options(request, runtime_options)
    # python2:  print(response)
    print(json.dumps(response.body.data, ensure_ascii=False))
{
  "data" : {
    "docs" : [
      {
        "_id" : "3459649677041723584_2",
        "_q_score" : 1,
        "_rc_score" : 11.952197,
        "_score" : 11.952197,
        "chunkId" : "3459649677041723584_2",
        "content" : " • 本文档仅作为用户使用阿里云产品及服务的参考性指引,阿里云以产品及服务的“现状”、“有缺陷”和“当前功能”的状态提供本文档。阿里云在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但阿里云在此明确声明对本文档内容的准确性、完整性、适用性、可靠性等不作任何明示或暗示的保证。任何单位、公司或个人因为下载、使用或信赖本文档而发生任何差错或经济损失的,阿里云不承担任何法律责任。在任何情况下,阿里云均不对任何间接性、后果性、惩戒性、偶然性、特殊性或刑罚性的损害,包括用户使用或信赖本文档而遭受的利润损失,承担责任(即使阿里云已被告知该等损失的可能性)。 • 阿里云网站上所有内容,包括但不限于著作、产品、图片、档案、资讯、资料、网站架构、网站画面的安排、网页设计,均由阿里云和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权、商业秘密等。非经阿里云和/或其关联公司书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容",
        "docId" : "3459649677041723584",
        "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
        "title" : "",
        "url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
      },
      {
        "_id" : "3459649677041723584_3",
        "_q_score" : 0.98918508454972753,
        "_rc_score" : 11.822934999999999,
        "_score" : 11.822934999999999,
        "chunkId" : "3459649677041723584_3",
        "content" : "非经阿里云和/或其关联公司书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容。此外,未经阿里云事先书面同意,任何人不得为了任何营销、广告、促销或其他目的使用、公布或复制阿里云的名称(包括但不限于单独为或以组合形式包含“阿里云”、“Aliyun”、“万网”等阿里云和/或其关联公司品牌,上述品牌的附属标志及图案或任何类似公司名称、商号、商标、产品或服务名称、域名、图案标示、标志、标识或通过特定描述使第三方能够识别阿里云和/或其关联公司)。 • 如若发现本文档存在任何错误,请与阿里云取得联系",
        "docId" : "3459649677041723584",
        "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
        "title" : "",
        "url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
      },
      {
        "_id" : "3459649677041723584_4",
        "_q_score" : 0.96916625453880978,
        "_rc_score" : 11.583665999999999,
        "_score" : 11.583665999999999,
        "chunkId" : "3459649677041723584_4",
        "content" : " 阿里云文字识别OCR 阿里云文字识别OCR/目录 文档版本:20230509 3 目录 法律声明.................................................................................................................................................................................... 2 目录 3 前言 4 概述................................................................................................................................................................................................................4",
        "docId" : "3459649677041723584",
        "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
        "title" : "",
        "url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
      },
      {
        "_id" : "3459649677041723584_73",
        "_q_score" : 0.96650933715366305,
        "_rc_score" : 11.551909999999999,
        "_score" : 11.551909999999999,
        "chunkId" : "3459649677041723584_73",
        "content" : "支持同一文件或图片内卡证票据混贴检测、识别,能够实现在财务票据混贴、个人证照混贴等场景下的自动分类、关键有效信息精准识别和结构化提取,极大提升 OCR能力在财务自动化、办公自动化及各类行业应用中的技术效能。 阿里云文字识别OCR 阿里云文字识别OCR/产品功能 文档版本:20230509 30 阿里云文字识别OCR 阿里云文字识别OCR/产品规格 文档版本:20230509 31 3. 产品规格",
        "docId" : "3459649677041723584",
        "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
        "title" : "电子面单识别 ii.混贴票据识别",
        "url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
      },
      {
        "_id" : "3459649677041723584_42",
        "_q_score" : 0.93509536363900292,
        "_rc_score" : 11.176444,
        "_score" : 11.176444,
        "chunkId" : "3459649677041723584_42",
        "content" : "精准识别银行开户许可证中的账号、核准号、企业名称、法人姓名以及开户行等关键信息。 阿里云文字识别OCR 阿里云文字识别OCR/产品功能 文档版本:20230509 15",
        "docId" : "3459649677041723584",
        "name" : "OCR基础能力产品白皮书V1.91,可对外.pdf",
        "title" : "银行开户许可证识别",
        "url" : "oss://ossFile1/OCR基础能力产品白皮书V1.91,可对外.pdf"
      }
    ],
    "total" : 108
  },
  "requestId" : "891CB7AB-5773-132F-B03D-589A3D2A6C7E",
  "status" : 0
}