閱讀226 返回首頁    go 英雄聯盟


搜索相關__應用操作接口_API參考手冊_開放搜索-阿裏雲

搜索類

搜索

係統提供了豐富的搜索語法以滿足用戶各種場景下的搜索需求。

URL

/search

支持格式

JSON

HTTP請求方式

GET

請求參數

參數 類型 必需 取值範圍 默認值 描述
query string 搜索主體,包含所有的查詢條件。主要子句分別包含config子句query子句sort子句filter子句aggregate子句distinct子句kvpairs子句
index_name string 要查詢的應用名。支持同一查詢條件下的多應用同時查詢,應用名間使用英文分號(;)分隔。
fetch_fields string 全部“可展示”字段。 可以通過此參數獲取本次查詢需要的字段內容,多個字段使用英文分號(;)分隔
qp string 已上線規則 指定要使用的查詢分析規則,多個規則使用英文逗號(,)分隔
disable string 關閉已生效的查詢分析功能
first_formula_name string 係統中默認粗排表達式名字 設置粗排表達式名字
formula_name string 係統中默認精排表達式名字 設置精排表達式名字
summary string 獲取係統結果摘要配置 動態摘要的配置,可以指定某些字段的飄紅、截斷等操作。
  • query參數:查詢的主體。可以通過若幹子句的組合來實現多樣的搜索需求,其中query子句為必選,子句與子句之前通過“&&”進行連接;
  • disable參數:目前僅支持”qp”。
  • index_name參數:多應用聯合查詢說明請見本節的“多應用聯合查詢”介紹;
  • fetch_fields參數:返回文本數據大小對查詢性能影響較大,建議隻獲取需要的字段。
  • summary參數:格式如下表,summary_element_prefix與summary_element_postfix必須同時設定;同時summary_element與(summary_element_prefix、summary_element_postfix)是相互影響的,出現在後麵的配置會覆蓋前麵。另外,目前不支持摘要和飄紅單獨設置。
參數 類型 必需 取值範圍 默認值 描述
summary_field string 要做摘要的字段
summary_element string em 飄紅標簽,html標簽去掉左右尖括號
summary_ellipsis string 摘要的結尾省略符
summary_snipped int 1 選取的摘要片段個數
summary_len string 摘要要展示的片段長度
summary_element_prefix string 飄紅的前綴,必須是完整的html標簽,如<em>
summary_element_postfix string 飄紅的後綴,必須是完整的html標簽,如</em>

返回結果

參數 類型 描述
status string 執行結果,OK為成功,FAIL為失敗,請根據返回錯誤碼進行排查
request_id string 該條查詢的記錄id,主要用於排查問題使用
result string 實際返回結果,包括查詢耗時searchtime、引擎總結果數total、本次請求返回結果數num、本次查詢最大返回結果數viewtotal、查詢結果items、統計結果facet等信息
errors string 錯誤內容,error_message代表錯誤信息。error_code代表錯誤碼
  • searchtime指引擎耗時,單位為秒。
  • items包含兩個節點fields及variableValue,其中fields為搜索返回字段內容,variableValue為自定義參數返回結果,如獲取distance距離值。
  • variableValue節點隻有在config子句的format為“xml”或者“fulljson”時才能展現出來,“json”格式默認不展示。
  • total、viewtotal、num區別:total為一次查詢(不考慮config子句)引擎中符合條件的結果數(在結果數較多情況下,該值會做優化),但考慮到性能及相關性,引擎最多會返回viewtotal個結果,如果需要翻頁的話,要求start+hit一定要小於viewtotal,total一般用來做展示。num為本次查詢請求(受config子句的start及hit)實際返回的條目,不會超過hit值。

示例

請求:(此處省略了公共參數及編碼等因素)

  1. https://$host/search?index_name=bbs&query=config=start:0,hit:10,format:fulljson&&query=default:'的'&&filter=create_timestamp>1423000000&&sort=+type;-RANK&fetch_fields=id;title;body;url;type;create_timestamp&first_formula_name=first_bbs&formula_name=second_bbs&summary=summary_snipped:1,summary_field:title,summary_element:high,summary_len:32,summary_ellipsis:...;summary_snipped:2,summary_field:body,summary_element:high,summary_len:60,summary_ellipsis:...

成功返回:

  1. {
  2. "status": "OK",
  3. "request_id":"142234864206580510737358"
  4. "result": {
  5. "searchtime": 0.068196,
  6. "total": 12034,
  7. "num": 2,
  8. "viewtotal": 5000,
  9. "items": [
  10. {
  11. "fields": {
  12. "id": "10",
  13. "type": "10",
  14. "title": "廣大中小企業都有各種結構化<high>的</high>數據...",
  15. "body": "廣大中小企業都有各種結構化<high>的</high>數據需要進行檢索,目前一般采用...",
  16. "url": "https://www.aliyun.com",
  17. "create_timestamp": "21",
  18. "index_name": "bbs"
  19. },
  20. "variableValue": {}
  21. },
  22. {
  23. "fields": {
  24. "id": "14",
  25. "type": "1",
  26. "title": "根據對各種類型典型站點<high>的</high>調研而...",
  27. "body": "根據對各種類型典型站點<high>的</high>調研而製定<high>的</high>一套具有一定擴展性<high>的</high>結構...",
  28. "url": "https://www.aliyun.com",
  29. "create_timestamp": "25",
  30. "index_name": "bbs"
  31. },
  32. "variableValue": {}
  33. }
  34. ],
  35. "facet": []
  36. },
  37. "errors": [],
  38. "tracer": ""
  39. }

錯誤返回:

  1. {
  2. "status": "FAIL",
  3. "request_id":"1422348642065805100387587"
  4. "result": {
  5. "searchtime": 0.001488,
  6. "total": 0,
  7. "num": 0,
  8. "viewtotal": 0,
  9. "items": [],
  10. "facet": []
  11. },
  12. "errors": [
  13. {
  14. "code": 6101,
  15. "message": "Index in query clause not exist."
  16. }
  17. ],
  18. "tracer": ""
  19. }

多應用聯合查詢

  1. 查詢:查詢語句必須一致(應用結構可以不一致),該查詢會往指定的多個應用分別發送,所以必須保證該查詢條件(包含first_formula_name、formula_name及summary等參數)在每個應用上都可以使用。一旦個別應用出現問題,則會報錯,並返回其他應用結果。
  2. 排序:如果用戶查詢語句中包含sort子句,則獲取各個應用結果後按照指定的sort子句再進行一次二次排序;如果沒有包含sort子句,則會將各個應用結果交叉展示;如果需要按照相關性(排序表達式)分數進行排序的話,可以顯式的在查詢語句中指定sort=-RANK。
  3. 費用計算:對每個應用分別計算一次訪問請求。
  4. 最多支持6個應用查詢,超過6個則直接報錯無結果。

掃描

傳統搜索場景的主要目的是為了盡量短的時間內召回最符合的結果,所以對搜索結果進行了限製。在某些場景下需要提供更多的結果來進行分析工作,可以使用scroll接口來獲取更多的結果,目前scorll隻支持query與filter子句,sort子句無法支持

URL

第一次查詢:/search?scroll=1m&search_type=scan

後續查詢:/search?scroll=1m&scroll_id=$scroll_id

支持格式

JSON

HTTP請求方式

GET

請求參數

參數 類型 必需 取值範圍 默認值 描述
scroll INT 用來表示scroll請求的有效期,默認時間單位為ms, 也可以用1m表示1min;支持的時間單位包括:w=Week, d=Day, h=Hour, m=minute, s=second
search_type STRING scan 第一次查詢的時候必須填寫,後續無需填寫
scroll_id string 第一次不需要,每次搜索結果會返回scroll_id值,後續查詢必填

返回結果

參數 類型 描述
status string 執行結果,OK為成功,FAIL為失敗,請根據返回錯誤碼進行排查
request_id string 該條查詢的記錄id,主要用於排查問題使用
result string 實際返回結果,包括查詢耗時searchtime、引擎總結果數total、本次請求返回結果數num、本次查詢最大返回結果數viewtotal、查詢結果items、統計結果facet、scorllid等信息
errors string 錯誤內容,error_message代表錯誤信息。error_code代表錯誤碼
  • 返回結果格式目前隻支持json。

示例

第一次請求:(此處省略了公共參數及編碼等因素)

  1. https://$host/search?scroll=1m&search_type=scan&index_name=bbs&query=config=start:0,hit:1,format=fulljson&&query=default:'的'&&filter=create_timestamp>1423000000

成功返回:

  1. {
  2. "status":"OK",
  3. "request_id":"1421348642065805100373587"
  4. "result":{
  5. "searchtime":0.014729,
  6. "total":2,
  7. "num":0,
  8. "viewtotal":2,
  9. "scroll_id":"eJxljsESgjAMRL+mPUNxQA89MHJxPPoBmVgCoqXFtjjw90b05kwO2cnL7tbGUIxnWk+tjoTB3CAadPCcKayA2xUetEqwGBOYOUQfdCaZChZomSANI+l8p8rykFX7LFO57HwYMel79E4OrqUFHDL07/9CO7SYSG5SG++6oRdF8zUQRb2MVqhjCmiIVUPXuReq5NkemGypw9l+UKGqyxbAi+R23lqdj/IXmtaJC3DyG9e2Voo=",
  10. "items":[],
  11. "facet":[]
  12. },
  13. "errors":[],
  14. "tracer":""
  15. }

後續請求:(此處省略了公共參數及編碼等因素)

  1. https://$host/search?scroll=1m&scroll_id=eJxljsESgjAMRL+mPUNxQA89MHJxPPoBmVgCoqXFtjjw90b05kwO2cnL7tbGUIxnWk+tjoTB3CAadPCcKayA2xUetEqwGBOYOUQfdCaZChZomSANI+l8p8rykFX7LFO57HwYMel79E4OrqUFHDL07/9CO7SYSG5SG++6oRdF8zUQRb2MVqhjCmiIVUPXuReq5NkemGypw9l+UKGqyxbAi+R23lqdj/IXmtaJC3DyG9e2Voo=

返回結果:

  1. {
  2. "status":"OK",
  3. "request_id":"1987348642065805100373587"
  4. "result":{
  5. "searchtime":0.010237,
  6. "total":1,
  7. "num":1,
  8. "viewtotal":1,
  9. "scroll_id":"eJxljbtuwzAMRb9G2gokki25g4agXoqM+QCCkelUjSwnegT230dx0KkAB17wXJ6DtZTSkdbvwSTCaH8gWQxwLxRXwO0KV1o5eEwZbIlpjuZDK9mqpmtFp8WnaMRu1/BajB5ouUF2E5l9I/ReKqVb2Uk+znHCbH7THLgLAy0QsEL/lQ/0bsBMfIvGzmF0Fyb79wMmD8vkmfjKES3V1NO5XJhQdbZCJQcasfgXyoQ+bYK6vBnMObpzybXa3678T2ZG9ImeMdFcYw==",
  10. "items":[
  11. {
  12. "field1":"content1",
  13. "index_name":"app_name"
  14. }
  15. ],
  16. "facet":[]
  17. },
  18. "errors":[],
  19. "tracer":""
  20. }

注意事項

  • start值無效,通過hit值設置每次返回的結果數,即後續查詢都以第一次查詢指定的hit值為準;
  • aggregate、sort、distinct、排序表達式無效,如果傳入,查詢會報錯且無結果;
  • 第一次查詢需要完整的query、index_name、AccessKeyId等參數,後麵的查詢不需要傳這些參數(即使傳入,也會被忽略),隻需要傳入上一次返回的scroll_id即可;
  • 不支持多應用scroll查詢;
  • 每次查詢都必須傳scroll參數,如果不傳,對於第一次查詢,就按正常的查詢;對於後續的查詢,按scroll處理,但結果中無scroll_id返回。
  • 返回結果均有第一次查詢中的format決定,後續傳scroll_id的響應格式均同第一次;
  • 如果用戶傳入的scroll_id是非法的,那麼查詢會報錯,返回結果格式為json。
  • 第一次查詢將不返回實際文檔數據,隻返回scroll_id,需要再次訪問才能拿到搜索結果。

最後更新:2016-12-14 16:44:03

  上一篇:go 數據處理類__應用操作接口_API參考手冊_開放搜索-阿裏雲
  下一篇:go 配額管理__應用操作接口_API參考手冊_開放搜索-阿裏雲