468
阿里云
文档操作__JavaSDK手册_SDK参考手册_开放搜索-阿里云
构造函数
接口描述
CloudsearchDoc类是非线程安全的,请每次调用时单独实例化一个实例使用
参数描述
参数名称 | 类型 | 描述 |
---|---|---|
indexName | String | 指定操作的应用名。 |
client | CloudsearchClient | CloudsearchClient实例。 |
接口定义
CloudsearchDoc(String indexName, CloudsearchClient client)
查看文档详情
接口描述
根据doc id获取doc的详细信息。
参数描述
参数名称 | 类型 | 描述 |
---|---|---|
docId | String | 指定的doc id。 |
返回结果
- 返回API返回的结果。
异常描述
IOException
ClientProtocolException
接口定义
String detail(String docId) throws ClientProtocolException, IOException
添加文档
接口描述
设置需要添加的属性名称和属性值,用于生成符合文档格式的数据,所有更新结束之后需要调用push(String tableName)方法
参数描述
参数名称 | 类型 | 描述 |
---|---|---|
fields | Map<String, Object> | 字段名和字段值的map |
异常描述
- JSONException
接口定义
void add(Map<String, Object> fields) throws JSONException
更新文档
接口描述
设置需要更新的属性名称和属性值,用于生成符合文档格式的数据,所有更新结束之后需要调用push(String tableName)方法
参数描述
参数名称 | 类型 | 描述 |
---|---|---|
fields | Map<String, Object> | 字段名和字段值的map |
异常描述
- JSONException
接口定义
void update(Map<String, Object> fields) throws JSONException
删除文档
接口描述
设置需要删除的属性名称和属性值,用于生成符合文档格式的数据,所有更新结束之后需要调用push(String tableName)方法
参数描述
参数名称 | 类型 | 描述 |
---|---|---|
fields | Map<String, Object> | 字段名和字段值的map |
异常描述
- JSONException
接口定义
void remove(Map<String, Object> fields) throws JSONException
执行文档变更操作(1)
接口描述
针对文档的操作add、update和remove会生成符合文档格式的数据,通过调用此接口用户提交的文档变更才会真正生效。
参数描述
参数名称 | 类型 | 描述 |
---|---|---|
tableName | String | 表名称 |
返回结果
- 返回的数据
异常描述
IOException
ClientProtocolException
接口定义
String push(String tableName) throws ClientProtocolException, IOException
执行文档变更操作(2)
接口描述
通过此接口可以直接将符合文档格式的数据直接推送到指定的表中
参数描述
参数名称 | 类型 | 描述 |
---|---|---|
docs | String | 此docs为用户push的数据,此字段为json类型的字符串。 |
tableName | String | 操作的表名。 |
返回结果
- 请求API并返回相应的结果。
异常描述
IOException
ClientProtocolException
接口定义
String push(String docs, String tableName) throws ClientProtocolException, IOException
通过文件导入数据(1)
接口描述
导入HA3 doc数据到指定的应用的指定表中
文件编码:UTF-8
支持CMD: add, delete, update。如果给出的字段不是全部,add会在未给出的字段加默认值,
覆盖原值;update只会更新给出的字段,未给出的不变。
文件分隔符:
<pre>
编码--------------描述-----------------------显示形态--------------------
"x1En" 每个doc的分隔符. ^^(接换行符)
"x1Fn" 每个字段key和value分隔. ^_(接换行符)
"x1D" 多值字段的分隔符. ^]
</pre>
示例:
<pre>
CMD=add^_
url=https://www.opensearch.console.aliyun.com^_
title=开放搜索^_
body=xxxxxxxxx^
multivalue_feild=123^]1234^]12345^
^^
CMD=update^_
...
</pre>
NOTE: 文件结尾的分隔符也必需为"^^n",最后一个换行符不能省略。
参数描述
参数名称 | 类型 | 描述 |
---|---|---|
filePath | String | 指定的文件路径。 |
tableName | String | 指定push数据的表名。 |
返回结果
- 返回成功或者错误信息。
异常描述
- JSONException
接口定义
String pushHADocFile(String filePath, String tableName) throws JSONException
通过文件导入数据(2)
接口描述
导入HA3 doc数据到指定的应用的指定表中
参数描述
参数名称 | 类型 | 描述 |
---|---|---|
filePath | String | 指定的文件路径。 |
tableName | String | 指定push数据的表名。 |
offset | long | 文档数据的偏移量,小于设定的offset行号的文档将被跳过 |
返回结果
- 返回成功或者错误信息。
异常描述
- JSONException
接口定义
String pushHADocFile(String filePath, String tableName, long offset) throws JSONException
获取上次请求的信息
返回结果
- String
接口定义
String getDebugInfo()
文档操作使用示例
应用结构
首先我们回顾一下我们之前创建的应用的结构:
名称 | 含义 | |
---|---|---|
1 | id | 标示一个主键id,在应用中唯一的字段,primary_key |
2 | type_id | 类型的id |
3 | cat_id | 分类id,类似于,1标示体育,2、科技,3、军事等等 |
4 | title | 资讯的标题 |
5 | body | 资讯的内容 |
6 | url | 资讯的url连接 |
7 | author | 作者 |
8 | thumbnail | 缩略图 |
9 | source | 来源 |
10 | create_timestamp | 资讯的创建时间 |
11 | update_timestamp | 资讯的最后修改时间 |
12 | hit_num | 点击次数 |
13 | focus_count | 关注次数 |
14 | grade | 等级 |
15 | comment_count | 评论数 |
16 | tag | 标签 |
文档概念
OpenSearch的文档是一个json类型的字符串,结构如下:
[
{
fields:{...},
cmd:"..."
}
...
]
一条文档是由fields字段和cmd字段构成的一个结构体,其中fields字段内包含文档的核心数据,cmd表示针对此条文档所做的操作,对文档的操作包括添加(add),更新(update)和删除(delete)三种。我们创建的news应用的一条文档示例如下:
[
{
"fields": {
"id": "0",
"type_id": 34,
"cat_id": 10,
"title": "阿里云开放搜索助力企业搜索应用",
"body": "广大中小企业都有各种结构化的数据需要进行检索,目前一般采用数据库本身提供的搜索功能或者利用open source的搜索软件搭建,这样的做法不但会消耗网站本身的资源,性能也会很容易成为问题,而且相关性通常也不够好。我们的产品的目的是要利用阿里云先进的云计算和搜索技术向广大中小企业提供低成本,高质量,高性能,可定制的数据搜索解决方案。本项目和云搜索的通用解决方案目标略有不同,主要区别为本项目主要针对用户的结构化数据进行搜索,云搜索的通用解决方案则主要是针对网页型数据为处理对象。",
"url": "https://opensearch.console.aliyun.com",
"author": "阿里云",
"thumbnail": "https://opensearch.console.aliyun.com",
"source": "新浪科技",
"create_timestamp": 1426589415,
"update_timestamp": 1426589415,
"hit_num": 700,
"focus_count": 31,
"grade": 96,
"comment_count": 68,
"tag": "搜索"
},
"cmd": "ADD"
},
]
文档操作
在建立好应用之后,我们需要把自己应用的数据上传到应用中,并且在运营的过程中对文档的内容进行维护。这里涉及到的文档相关的操作包括以下四种:添加文档、查看文档、更新文档和删除文档。
添加文档
将文档添加到OpenSearch应用的表中对应的操作cmd是ADD,在Java SDK中可以使用 add接口完成文档添加操作: 例如上面的fields字段的内容是从数据库中读取的,存放在一个Map<String,Object>类型的数据结构里,可以直接使用add接口生成符合文档格式的json字符串,再调用push接口完成上传;
client.add(fields);
client.push("main");//main是上传到的表名
如果已经生成了符合文档格式的json_string 可以直接调用push接口实现上传:
client.push(json_string,"main");
查看文档
将文档上传至应用后可以通过文档id使用detail接口查看文档内容:
doc.detail("1");
更新文档
更新文档时 文档中cmd字段对应的值为update,并且在fields字段中要提供待更新的文档的id,然后调用push接口使其生效:
doc.update(fields);
doc.push("main");//main为待更新的文档所在的表名
删除文档
删除文档时文档中的cmd字段对应的值为delete,需要提供待删除的文档的id,然后调用push接口
Map<String,Object> fields = new HashMap<String,Object>();
fields.put("id",1);
doc.remove(fields);
doc.push("main");//main为待删除文档所在的表名
使用文件来上传文档
除了上面的方法还可以通过文件量,小于设定的offset行号的doc将被跳过 导入HA3 doc数据到指定的应用的指定表中
文件编码:UTF-8
支持CMD: add, delete, update。如果给出的字段不是全部,add会在未给出的字段加默认值,覆盖原值;update只会更新给出的字段,未给出的不变。
文件分隔符:
<pre>
编码--------------描述-----------------------显示形态--------------------
"x1En" 每个doc的分隔符. ^^(接换行符)
"x1Fn" 每个字段key和value分隔. ^_(接换行符)
"x1D" 多值字段的分隔符. ^]
</pre>
示例:
<pre>
CMD=add^_
url=https://www.opensearch.console.aliyun.com^_
title=开放搜索^_
body=xxxxxxxxx^
multivalue_feild=123^]1234^]12345^
^^
CMD=update^_
...
</pre>
注意:文件结尾的分隔符也必需为"^^n",最后一个换行符不能省略。
doc.pushHADocFile(file_path,table_name);
使用HA类型文件推送文档时还可以指定从文件中的某个位置开始推送,对应的接口为:
doc.pushHADocFile(file_path,talbe_name,offset);
其中:offset 文档数据的偏移量,小于设定的offset行号的doc将被跳过
调试接口
CloudsearchDoc类内置了一个调试接口,通过调用调试接口可以获得操作发出的请求内容,当我们操作文档时发现与预期不符时可以通过此接口查看请求细节。
debugInfo = doc.getDebugInfo();
最后更新:2016-11-24 11:23:47
上一篇:
搜索操作__JavaSDK手册_SDK参考手册_开放搜索-阿里云
下一篇:
应用操作__JavaSDK手册_SDK参考手册_开放搜索-阿里云
启动__Console参考手册_数据集成-阿里云
Special__数据类型_API_API 网关-阿里云
ExecutionPlanInfo__数据类型_API参考_E-MapReduce-阿里云
内网__网络和安全性_产品简介_云服务器 ECS-阿里云
服务市场条件__服务商入驻_服务商_云市场-阿里云
设置对象/文件元信息__管理文件_开发人员指南_对象存储 OSS-阿里云
经典网络专线接入__使用金融云产品_金融云-阿里云
全靠内地市场大 阿里云市场份额超Google 成全球第三
查询实例规格族列表__其他接口_API 参考_云服务器 ECS-阿里云
AddUserToGroup__组管理接口_RAM API文档_访问控制-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云