OSS + API 数据源

开通OSS服务

image.png

  1. 开通OSS服务

  2. 控制台创建存储空间

  3. 控制台上传文件

  4. 添加opensearch标签:(key-value 值均为opensearch)

    image.png

添加OSS数据源

  1. 实例详情>表管理页,点击添加表

    image.png

  2. 表管理界面开始配置表基础信息,填写表名称,分片数和数据更新资源数:

    image.png

    配置说明

  • 表名称:可自定义。

  • 数据分片数:分片数设置时,各索引表分片数需保持一致;或至少一个索引表分片数为1,其余索引表分片数一致,表分片不超过256的正整数即可(建议不超过实例数据节点数的3倍)。

  • 数据更新资源数:数据更新所用资源数,每个索引默认免费提供2个4核8G的更新资源,超出免费额度的资源将产生费用,详情可参考召回引擎版计费概述

  1. 数据同步,配置数据源,校验通过后,点击下一步

    image.png

参数说明

  • 数据源名称:可自定义数据源名称(需字母开头,支持字母数字下划线)

  • OSS路径:访问OSS文件的路径

  • 存储空间(Bucket):OSS的Bucket名称

说明

  • 目录名必须包含opensearch,或者必须有opensearch:opensearch的标签,否则将无法读到数据,且不可包含 = & ?等特殊符号

  • OSS路径来源:在创建好的Bucket名称点击进入后-新建目录-选择创建好的目录路径,此处示例路径为/opensearch_index_data/:

image.png

  • 存储空间(Bucket) :OSS的Bucket名称(来源:在开通的OSS服务Bucket里使用创建好的Bucket名称-如下图所示)

image.png

  1. 字段配置,配置完成后,点击下一步:

    image

    案例中配置了2个字段pk、namespace,样例数据可参考(样本数据:oss_test.txt):

CMD=add
pk=999000
namespace=0.00.0039257140.0098142860.0039257140.00
pk=999000
namespace=0.00.0039257140

oss中的文件内容可参考下文中的文件格式

  1. 索引结构配置,配置完成后,点击下一步:

    image.png

  2. 确认创建,点击确认创建后,系统将自动创建配置好的表:

    image.png

  3. 可在变更历史中查看创建表进度:

    image.png

  4. 当表状态在使用中时,即可在查询测试页面进行查询测试:

    image.png

HA文件格式

文件是建立索引的数据源(注意:需要是 UTF-8的编码),有着固定的格式,下面介绍标准的输入格式。

  • 首先看一个完整的数据文件standard_sample.data的内容

CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=阿里云计算有限公司^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=阿里云计算有限公司^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_

可以看到上面的数据文件中总共有两个命令,分别是add、delete每个命令由多行组成,每行都是一个key-value对。 命令与命令之间用'^^\n'分隔,每一对key-value之间以'^_\n'分隔,多值之间以'^]'分隔。下面详细介绍。

  • 文件分隔符定义

C++编码

ASCII

16进制

描述

(emacs/vi)中的显示形态

emacs中输入方法

vi中输入方法

"\x1F\n"

1F0A

key value分隔符

^_(接换行)

C-q C-7

C-v C-7

"\x1E\n"

1E0A

命令分隔符

^^(接换行)

C-q C-6

C-v C-6

"\x1D"

1D

multi value 分隔符

^]

C-q C-5

C-v C-5

"\x1C"

1C

section weight标志符

^\

C-q C-4

C-v C-4

"\x1D"

1D

section 分隔符

^]

C-q C-5

C-v C-5

"\x03"

03

sub doc 字段分隔符

^C

C-q C-c

C-v C-c

  • 命令格式定义

  • Add command formatadd命令表示往索引中增加新的内容。add命令第一行必须为CMD=add,后面是该文档的field,field顺序可以与schema中fields顺序一致,所有出现的field必须是fields中指定的。

CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=阿里云计算有限公司^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=阿里云计算有限公司^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
  • Delete command format delete命令表示从索引中删除指定的内容。delete命令第一"行"必须为CMD=delete,接下来的"行"为index schema中定义属性为primary key 的field,以及用于partition hash的field,如果两个field相同,则只需要出现一个field。

CMD=delete^_
PK=12345321^_
^^CMD=delete^_
PK=12345321^_
^^

注意事项

  • 开通的OSS服务,需要和已购买的OpenSearch服务在同一个地域。

  • 开通OSS服务,需要设置添加opensearch标签。

  • 召回引擎版不支持无地域属性的OSS的bucket。

  • 执行新增OSS数据源操作时,将会自动创建一个服务关联角色(如已经创建,则不会重复创建)AliyunServiceRoleForSearchEngine,开放搜索使用此角色来访问您在其他云产品中的资源已完成相应功能。