使用情境
傳統搜尋情境的主要目的是為了盡量短的時間內召回最符合的結果,所以對搜尋結果進行了限制,例如 search方法最多隻能召回5000條文檔。在某些情境下需要提供更多的結果來進行分析工作,可以使用scroll介面來擷取更多的結果。
參數介紹
搜尋參數:
參數 | 類型 | 必需 | 取值範圍 | 預設值 | 描述 |
scroll | STRING | 是 | 周,日,時,分,秒 | 表示下一次 scroll請求的有效期間,每次請求都必須設定該參數,可以用1m表示1min;支援的時間單位包括:w=Week, d=Day, h=Hour, m=minute, s=second | |
search_type | STRING | 是 | scan | 第一次查詢的時必須填寫,後續無需填寫,後續通過指定 scroll_id 實現下一次查詢 | |
scroll_id | string | 是 | 第一次調用scroll方法會返回scroll_id 但並不包含資料,後續每次搜尋都必須指定上一次返回scroll_id,並且後續搜尋結果中都會返回scroll_id及對應匹配的資料,後續查詢該參數必填 | ||
fetch_fields參數 | string | 用於設定召回哪些應用欄位內容 |
返回結果參數:
參數 | 類型 | 描述 |
status | string | 執行結果,OK為成功,FAIL為失敗,請根據返回錯誤碼進行排查 |
request_id | string | 該條查詢的記錄id,主要用於排查問題使用 |
result | string | 實際返回結果,包括查詢耗時searchtime、引擎總結果數total、本次請求返回結果數num、本次查詢最大返回結果數viewtotal、查詢結果items、統計結果 facet、scorllid 等資訊 |
errors | string | 錯誤內容,error_message代表錯誤資訊。error_code 對應含義參考 錯誤碼說明 文檔 |
注意:scroll 返回結果格式,目前只支援返回為fulljson,json格式。
結果展示
第一次請求結果:
{
"status": "OK",
"request_id": "150150574119953661605242",
"result": {
"searchtime": 0.005029,
"total": 1,
"num": 0,
"viewtotal": 1,
"scroll_id": "eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1 MMg3ROwCesLlG6X7a2o=",
"items": [],
"facet": []
},
"errors": [],
"tracer": ""
}
後續請求結果:
{
"status": "OK",
"request_id": "150150574119952551519970",
"result": {
"searchtime": 0.006293,
"total": 1,
"num": 1,
"viewtotal": 1,
"scroll_id": "eJxNT9tugzAM/RrznIRC4YEHaNlvRFFIhteQtE6Qtn39TNdJk2z5dnx8rIPJRdudcqKhl60Uir2Vp06ISv8b6s3QbZCVzpaCdp93XXBzg2wEW9MJ2dWq8q7YVXt0YckDLlBP0WyOw31N8YgYizZEnAUsjkx4VT4k8zexpjiNS/XYHX0NNkWP71BfVyxQjxLUxSfazFH4PYSPnCL3iMniDZq3jN98aFRCgGrZniy8/itkBHWGuYVeQH+B+QzTCUZ1NJ9gj4FVMfrQPr8Y+Hk+dgU14fIDVhtfTw==",
"items": [
{
"fields": {
"cate_id": "0",
"float_arr": "0",
"id": "1",
"int_arr": "0",
"literal_arr": "搜尋",
"name": "搜尋",
"phone": "1381111****",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"1"
]
}
],
"facet": []
},
"errors": [],
"tracer": ""
}
注意事項
sort子句(只支援單欄位INT類型,僅限v3版API及SDK)。
scroll僅支援匯出所有資料,不支援Aggregate、Distinct子句;不支援粗精排運算式;同時也不支援查詢分析。
scroll查詢中的config子句start參數不起作用,預設為0. 即不支援跳頁。hits限制為[0,500]。
scroll查詢以第一次查詢(即返回scrollID 的那次查詢)的hit值為準,之後再修改hit值均不生效。
第一次執行時不返迴文檔資料,只返回scroll_id值,第二次調用查詢時設定scroll_id,即返回資料。
搜尋報錯判斷需按code和message,進行異常情況判斷,不要按status進行判斷。錯誤碼文檔
若召回結果報錯:Scroll_id is expired,說明scroll請求的有效期間到期了,請調整scroll參數
SDK 範例demo
注意:
1.config子句中start無效,通過hit值設定每次召迴文檔數。
2.aggregate、distinct、粗精排運算式等都無效,sort子句只支援單欄位INT類型排序。
3.不支援多應用scroll查詢。
4.如果傳入的scroll_id非法,查詢時會報錯。
5.召回結果格式只支援fulljson,json。
6.第一次查詢只返回scroll_id,不返迴文檔資料,需要重新查詢並設定上一次查詢返回的scroll_id才能召回資料。
Java案例:
PHP案例:
應用操作API: