开发者社区> 问答> 正文

OpenSearch的数据源及插件是什么?


OpenSearch中的数据,既支持通过API/SDK/上传界面的方式导入,也支持直接从已有的云端数据源进行同步。如果选择通过API或SDK来上传数据,可以参照API手册直接上传,无需额外配置。如果选择同步云端数据的方式,则需要将数据源的相关信息在控制台中进行配置。目前系统提供了若干的数据处理插件可以实现一些简单的数据转化操作,在配置数据源字段对应关系(API方式上传数据的暂不支持,需要用户推送前处理好)可以选择使用。
[backcolor=transparent]一张OpenSearch表可以支持多个rds及TDDL(mysql)来源表(如分库分表的场景),但是ODPS源只能配置一个,如需多个ODPS来源表,请先将数据合并成一张表后再导入。

数据处理插件


系统中某些搜索功能或者特征函数需要特殊的字段类型支持。如Array类型字段,需要通过如下插件来转化,用户无法直接输入。[backcolor=transparent] 注意:该插件在数据源配置处配置,而不是定义应用结构的时候

配置项名称说明示例版本
JsonKeyValueExtractor从Json格式的来源字段中提取指定的键值,提取出来的键值作为目标表字段的内容,只能抽取某个key中的值。{“title”:”the content”,”body”:”the content”} 中提取出键值title的内容,若内容为JsonArray格式,则将转化为系统中Array类型字段内容。此处的JsonArray格式,是指符合我们这边定义的JsonArray格式。例如 literal_array字段类型:{“tags”:[“a”,”b”,”c”]} 或 int_array字段类型: {“tags”:[1,2,3]}高级版
MultiValueSpliter将来源字段按照分隔符分割成多个值,分割后的内容作为目标表字段的内容,目标表字段必须是配置为ARRAY类型的字段 (若分隔符为不可见字符,需要使用unicode字符来标识,如\u001D)数据源内容为:1,2,3,指定分隔符为 “,” 直接输入一个英文的逗号即可高级版/标准版
KeyValueExtractor从KV格式的来源字段中提取指定的键值,提取出来的键值作为目标表字段的内容,只能抽取某个key中的值。分隔符可以不填实际内容为:key1:value1,value2;key2:value3,键为key1,key2,键分隔符为分号,键值分隔符为冒号,多值分隔符为逗号。如果配置了多值分隔符,则将转化为系统中Array类型字段内容,若存在2个相同的key,则只会抽取后面的那个key的值。高级版
StringCatenateExtractor将多个指定字段按照指定的顺序拼接成一个字符串,该插件不支持int字段类型,建议用literal字段类型;字段列表以逗号分隔(字段需来自于目标字段)将field1,field2内容按照‘_’组成新的字段内容。另系统变量$table可以获取当前表名高级版


API/SDK数据源


通过API/SDK导入非常灵活,完全由用户控制,具体请参见 API开发者指南Java SDK文档Php SDK文档

TDDL(Mysql)数据源配置


仅“内网杭州”区域可见,请移步 TDDL对接OpenSearch流程

展开
收起
轩墨 2017-10-25 10:18:20 3007 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
《开放搜索统一召回引擎实践》 立即下载
《开放搜索查询分析服务架构分享》 立即下载
《开放搜索在智能化行业搜索和业务增长领域的应用实践》 立即下载