閱讀628 返回首頁    go 魔獸


使用教程__JavaSDK手冊_SDK參考手冊_開放搜索-阿裏雲

準備工作

獲取用戶AccessKeyId和秘鑰(secret)

用戶可以使用阿裏雲的賬號登錄本係統,在登錄完成後,點擊“ACCESSKEY管理”可以查看您的Access Key ID(AccessKeyId)和 Access Key Secret(secret)。也可以在阿裏雲官網,點擊“用戶中心>我的服務>安全驗證”即可到ACCESSKEY管理中心。

將SDK添加到項目中

使用OpenSearch SDK有兩種方式:

  • 1.下載SDK源碼包,在下載中心下載最新版的JAVA SDK到本地,並import 到您的工作目錄中。
  • 2.引入OpenSearch SDK依賴,通過maven二方庫依賴的方式將opensearch的sdk加入到自己的項目中。
    1. <dependencies>
    2. <dependency>
    3. <groupId>com.aliyun.opensearch</groupId>
    4. <artifactId>aliyun-sdk-opensearch</artifactId>
    5. <version>2.1.3</version>
    6. </dependency>
    7. </dependencies>

創建client

通過控製台也可以完成創建應用的操作,這裏介紹一下如何使用SDK實現。這裏使用import SDK的方式,使用上麵獲取的AccessKey和Secret實例化一個Opensearch Client(下麵的操作裏將繼續使用如下的client),具體代碼如下:

  1. import com.aliyun.opensearch.*;
  2. String accesskey= "您的阿裏雲的Access Key ID";
  3. String secret = "阿裏雲 Access Key ID 對應的 Access Key Secret";
  4. String appName = "您要創建的應用名稱";
  5. Map<String, Object> opts = new HashMap<String, Object>();
  6. // 這裏的host需要根據訪問應用詳情頁中提供的的API入口來確定
  7. CloudsearchClient client = new CloudsearchClient(accesskey, secret , host, opts, KeyTypeEnum.ALIYUN);
  8. ## 上傳文檔
  9. OpenSearch的文檔是一個json類型的字符串,結構如下:
  10. ```json
  11. [
  12. {
  13. “fields”:{...},
  14. “cmd”:"..."
  15. }
  16. ...
  17. ]

一條文檔是由fields字段和cmd字段構成的一個結構體,其中fields字段內包含文檔的核心數據,cmd表示針對此條文檔所做的操作,對文檔的操作包括添加(add),更新(update)和刪除(delete)三種。一段文檔示例如下:

  1. [
  2. {
  3. “fields”: {
  4. “id”: "0",
  5. “summary”: "廣大中小企業都有各種結構化的數據需要進行檢索,目前一般采用數據庫本身提供的搜索功能或者利用open source的搜索軟件搭建,這樣的做法不但會消耗網站本身的資源,性能也會很容易成為問題,而且相關性通常也不夠好。我們的產品的目的是要利用阿裏雲先進的雲計算和搜索技術向廣大中小企業提供低成本,高質量,高性能,可定製的數據搜索解決方案。本項目和雲搜索的通用解決方案目標略有不同,主要區別為本項目主要針對用戶的結構化數據進行搜索,雲搜索的通用解決方案則主要是針對網頁型數據為處理對象。"
  6. },
  7. “cmd”: "ADD"
  8. },
  9. {
  10. “fields”: {
  11. “id”: "1",
  12. “summary”: "雲搜索( Cloud Search Engine),是運用雲計算( Cloud Computing)技術的搜索引擎,可以綁定多個域名,定義搜索範圍和性質,同時,不同域名可以有不同UI和流程,這個UI和流程由運行在雲計算服務器上的個性化程序完成。作為新型搜索引擎,與傳統搜索引擎需要輸入多個關鍵字不同的是,用戶可以告訴搜索引擎每個搜索關鍵字的比重,每個搜索關鍵字都被置於“搜索雲”中,並用不同大小,粗細的字型區分。 "
  13. },
  14. “cmd”: "ADD"
  15. }
  16. ]

將文檔上傳到應用的某個表中的代碼如下:

  1. CloudsearchDoc doc = new CloudsearchDoc(indexName, client);
  2. table_name = "要上傳數據的表名";
  3. data = "[{"cmd":"add", "fields":{"id":"0","summary":"blabla..."}}]";
  4. System.out.println(doc.push(data, table_name));

另外還可以通過CloudsearchDoc類的提供的add、update、delete三個接口生成待上傳的數據,最後在調用push方法將數據上傳;

開始搜索

OpenSearch通過設置可以實現高度個性化的搜索需求,但通用的基本的搜索功能隻需通過非常簡單的設置即可實現:

  1. CloudsearchSearch search = new CloudsearchSearch(client);
  2. // 添加指定搜索的應用:
  3. search.addIndex("您的應用名稱");
  4. // 指定搜索的關鍵詞,這裏要指定在哪個索引上搜索,如果不指定的話默認在使用“default”索引(索引字段名稱是您在您的數據結構中的“索引到”字段。)
  5. search.setQueryString("'詞典'");
  6. search.setQueryString("default:'詞典'");
  7. search.setQueryString("index_name:'詞典'");
  8. // 指定搜索返回的格式。
  9. search.setFormat("json");
  10. // 設定過濾條件
  11. search.addFilter("price>10");
  12. // 設定排序方式 + 表示正序 - 表示降序
  13. search.addSort("price", "+");
  14. // 返回搜索結果
  15. System.out.println(search.search());

調試

通過上麵的操作我們已經可以使用基本的搜索功能了,但是優化搜索、提高搜索結果相關性是一個漫長的的過程,需要我們不斷試錯和迭代來一點點改進。在這個過程中如果遇到問題或者發現結果與預期不一致時可以通過下麵的接口獲得請求的詳細信息,您可以通過這些信息排查問題。特別是當遇您到問題,在旺旺群、QQ群中尋求幫助的時候,根據您提供的調試信息我們可以迅速幫您定位到問題所在。

  1. //搜索類的調試信息調用接口
  2. System.out.println(search.getDebugInfo());
  3. //文檔類的調試信息調用接口
  4. System.out.println(doc.getDebugInfo());
  5. //應用類的調試信息調用接口
  6. System.out.println(index.getDebugInfo());

最後更新:2016-11-23 16:04:03

  上一篇:go 版本說明__JavaSDK手冊_SDK參考手冊_開放搜索-阿裏雲
  下一篇:go SDK客戶端__JavaSDK手冊_SDK參考手冊_開放搜索-阿裏雲