626
汽车大全
Array数组类型说明__功能篇_最佳实践_开放搜索-阿里云
本文主要对Array类型的使用场景、数据推送及搜索语法进行系统的介绍,方便大家理解。
什么场景下适合使用ARRAY类型?
Array类型即为数组类型,数组类型即由相同类型的若干个元素组织在一起的数据,期望在搜索的时候对于每一个元素都可以执行单独的查询。比如小说的标签tags,包含“悬疑”、“穿越”、“古典”,希望在搜索“悬疑”的时候能找到该篇小说。
如何推送ARRAY类型的数据?
目前OpenSearch支持多种方式的数据推送方式,那我们就从每个途径来分开阐述如何进行数据推送。
API方式
ARRAY类型需要采用JsonArray的方式来上传数据。 如:
[{"fields": { "id": "0","int_array": [14,85],"float_array": [14.0,85.0],"string_array": ["abc","xyz"]},"cmd": "ADD"}]
具体数据上传接口请参考API参考手册-数据处理相关
SDK方式
这里以php sdk为例,其他sdk做法类似。
<?php
require('php_2.0.4/CloudsearchClient.php');
require('php_2.0.4/CloudsearchIndex.php');
require('php_2.0.4/CloudsearchDoc.php');
define('ACCESSKEYID', '您的阿里云AccessKeyId');
define('SECRET', '您的阿里云AccessKeySecert');
define('APP_NAME', '您的应用名称');
define('KEY_TYPE','aliyun'); #固定值
#每个应用具体host值请参考应用管理->应用详情->API入口,打开debug接口方便调试
$client = new CloudsearchClient(
ACCESSKEYID,
SECRET,
array('host' => 'https://opensearch-cn-hangzhou.aliyuncs.com', 'debug' =>true),
KEY_TYPE
);
$doc = new CloudsearchDoc(APP_NAME, $client);
$json = <<<EOF
[{"fields": { "id": "0","int_array": [14,85],"string_array": ["abc","xyz"]},"cmd": "ADD"}]
EOF;
echo $doc->add($json, '您要推送数据的表名');
echo $client->getRequest(); #打印发送的请求串,前提是CloudsearchClient的debug打开
?>
数据源方式
数据源配置允许用户对于数据源数据进行多种格式的解析操作,如果定义了ARRAY类型的字段,可以在该字段上选择MultiValueSpliter插件,定义好多值分隔符,比如上例中的tags,在数据库表中字段内容为:“穿越,悬疑,言情”,那么多值分隔符为英文逗号:“,”,如图所示即可。该插件会自动将数据库中字段转化成为引擎识别的ARRAY类型。
ARRAY类型如何进行检索?能实现怎样的效果?
ARRAY类型的每一个元素都可以单独访问,不管是用在query子句,还是filter子句,如上例中的tags字段(内容为:穿越,悬疑,言情),可以通过query=tags:'穿越'来找到该文档;也可以通过query=title:'步步惊心'&&filter=tags="穿越",来实现标签为“穿越”的名字包含“步步惊心”的小说。同时需要注意一点的是,搜索结果对于Array类型是按照字符串返回的,元素之间使用't'分隔,而不是数组。
相关问题
Q: 为什么没有text_array类型,text与string_array有什么区别?
A: text类型(包含text、sws_text、nws_text、mws_text)涉及到分词,本身支持的是模糊搜索,所以没有数组的概念,而string_array指的是每个元素的精确匹配,很可能这里的单个元素本身是由多个词组组成的,但是没关系要求的是全部匹配。
Q: 有没有方法获得array类型的元素个数?
A: 系统提供了fieldlen(array_field)的参数,可以获取元素个数。
最后更新:2016-11-23 17:16:06
上一篇:
相关性实战__功能篇_最佳实践_开放搜索-阿里云
下一篇:
模糊搜索详解__功能篇_最佳实践_开放搜索-阿里云
启动实例__实例相关接口_API 参考_云服务器 ECS-阿里云
获取产品类型信息__接口列表_服务器端API_阿里云物联网套件-阿里云
付费用户首超百万 阿里云下一步落子何处?
从“单点智能”到“生态智能”,阿里云转动物种进化的时钟
RAM简介__简介_RAM API文档_访问控制-阿里云
开通 EDAS 服务__快速开始_企业级分布式应用服务 EDAS-阿里云
GIS地理数据分析__应用场景_云数据库 HybridDB-阿里云
暴恐敏感图片异步接口__暴恐敏感图片API_内容检测API文档_阿里绿网-阿里云
云服务器 ECS Linux SSH 连接交互过程简介__远程登录 (SSH)_Linux操作运维问题_云服务器 ECS-阿里云
查询水印模板__水印模板接口_API使用手册_媒体转码-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云