API/SDK数据导入

更新时间:
复制 MD 格式

OpenSearch行业算法版提供三种接入方案:用户可选择通过API/SDK导入以获得最大灵活性;对于轻量化测试,可使用控制台直接上传小批量数据;需对接云端数据库时,系统支持与RDS、MaxCompute、PolarDB等数据源的自动化管道同步,通过可视化配置实现自动化管道同步。

字段类型对应关系

OpenSearch 字段类型

API推送字段类型

INT

int、long

INT_ARRAY

int [] 、long []

FLOAT

float

FLOAT_ARRAY

float []

DOUBLE

double

DOUBLE_ARRAY

double []

LITERAL

string 

LITERAL_ARRAY

string []

SHORT_TEXT

string 

TEXT

string 

TIMESTAMP

long

GEO_POINT

string,格式为:lon lat。lon表示经度,lat表示纬度,都为double类型,二者之间用空格分隔。lon的范围:[-180, 180], lat范围[-90, 90]。

API推送数据

  1. 控制台上传文件的功能一般用于搜索功能测试,不适用于大量文档上传,效率比较低,一次只能上传2M大小的文档。其他API/SDK更多推送系统限制点击此处查看文档。

    在实例管理页面的实例列表中,找到目标实例,单击操作列的下拉菜单,选择上传文件

  2. API/SDK不支持设置数据源插件,请自行拼接、处理后传入OpenSearch应用中。比如,array类型使用API上传时,注意不要上传为string格式,而是上传为数组类型。例:

    //定义Map对象存储上传文档数据,此为文档2
    Map<String,Object> doc2 =Maps.newLinkedHashMap();
         doc2.put("id",1);
    String[] literal_arr2 ={"元素1","元素2"};
         doc2.put("literal_arr", literal_arr2);
  3. API/SDK具体请参见:

    API开发者指南

    Java SDK: Commit推送Demo、Push推送Demo

    Php SDK :Push推送Demo、Push推送带搜索Demo

    Go SDK :行为数据推送Demo、Push推送Demo

    TypeScript/Node.js SDK:安装@alicloud/opensearch-sdk包。

    npm install @alicloud/opensearch-sdk

    通过pushDocument接口推送数据:

    import Client, { Config, Document, PushDocumentRequestModel } from '@alicloud/opensearch-sdk';
    
    // 使用AccessKey鉴权
    const config = new Config({
      endpoint: 'opensearch-cn-beijing.aliyuncs.com',  // 流量接入地址,横杠格式
      accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
      accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
    });
    const client = new Client(config);
    
    // 构造待推送文档
    const docs = [
      new Document({
        cmd: 'ADD',
        fields: { id: '1', title: '示例文档', body: '文档内容' },
      }),
    ];
    
    // 推送数据到指定应用的表
    const request = new PushDocumentRequestModel({ body: docs });
    const response = await client.pushDocument('应用名', '表名', request);
    console.log(response.body);

    不同地域的流量接入endpoint格式为opensearch-cn-{region}.aliyuncs.com,例如杭州地域对应opensearch-cn-hangzhou.aliyuncs.com。SDK鉴权使用阿里云AccessKey(AK/SK),通过Config传入,不使用API-key方式。

    OpenSearch提供两个npm包:@alicloud/opensearch-sdk用于流量API(搜索、数据推送、下拉提示),@alicloud/opensearch20171225用于管控API(应用管理)。数据推送场景使用@alicloud/opensearch-sdk

相关链接

  1. API/SDK导入:详情请参考:Commit推送Demo

  2. 控制台上传文件:每次上传文件大小限制为2MB。详情请参考:使用教程

  3. 数据源导入:详情请参考:RDS数据源配置