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-阿裏雲