全部产品

scroll方法

更新时间:2020-08-19 19:09:21

使用场景

传统搜索场景的主要目的是为了尽量短的时间内召回最符合的结果,所以对搜索结果进行了限制,例如 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格式。

结果展示

第一次请求结果:

  1. {
  2. "status": "OK",
  3. "request_id": "150150574119953661605242",
  4. "result": {
  5. "searchtime": 0.005029,
  6. "total": 1,
  7. "num": 0,
  8. "viewtotal": 1,
  9. "scroll_id": "eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1 MMg3ROwCesLlG6X7a2o=",
  10. "items": [],
  11. "facet": []
  12. },
  13. "errors": [],
  14. "tracer": ""
  15. }

后续请求结果:

  1. {
  2. "status": "OK",
  3. "request_id": "150150574119952551519970",
  4. "result": {
  5. "searchtime": 0.006293,
  6. "total": 1,
  7. "num": 1,
  8. "viewtotal": 1,
  9. "scroll_id": "eJxNT9tugzAM/RrznIRC4YEHaNlvRFFIhteQtE6Qtn39TNdJk2z5dnx8rIPJRdudcqKhl60Uir2Vp06ISv8b6s3QbZCVzpaCdp93XXBzg2wEW9MJ2dWq8q7YVXt0YckDLlBP0WyOw31N8YgYizZEnAUsjkx4VT4k8zexpjiNS/XYHX0NNkWP71BfVyxQjxLUxSfazFH4PYSPnCL3iMniDZq3jN98aFRCgGrZniy8/itkBHWGuYVeQH+B+QzTCUZ1NJ9gj4FVMfrQPr8Y+Hk+dgU14fIDVhtfTw==",
  10. "items": [
  11. {
  12. "fields": {
  13. "cate_id": "0",
  14. "float_arr": "0",
  15. "id": "1",
  16. "int_arr": "0",
  17. "literal_arr": "搜索",
  18. "name": "搜索",
  19. "phone": "18312345678",
  20. "index_name": "app_schema_demo"
  21. },
  22. "property": {},
  23. "attribute": {},
  24. "variableValue": {},
  25. "sortExprValues": [
  26. "1"
  27. ]
  28. }
  29. ],
  30. "facet": []
  31. },
  32. "errors": [],
  33. "tracer": ""
  34. }

注意事项

  • sort子句(只支持单字段INT类型,仅限v3版API及SDK)
  • scroll仅支持导出所有数据,不支持Aggregate,Distinct,Rank子句。
  • scroll方法中的config子句start参数不起作用,默认为0. 即不支持跳页。hits限制为[0,500]。
  • 第一次执行时不返回文档数据,只返回scroll_id值,第二次调用查询时设置scroll_id,即返回数据。
  • 搜索报错判断需按code和message,进行异常情况判断,不要按status进行判断。错误码文档

SDK 样例dome

注意:

  • config子句中start无效,通过hit值设置每次召回文档数。
  • aggregate、distinct、粗精排表达式等都无效,sort子句只支持单字段INT类型排序。
  • 不支持多应用scroll查询。
  • 如果传入的scroll_id非法,查询时会报错。
  • 召回结果格式只支持fulljson,json。
  • 第一次查询只返回scroll_id,不返回文档数据,需要再次查询并设置上一次查询返回的scroll_id才能召回数据。

Java案例
scroll简单查询Demo:
https://help.aliyun.com/document_detail/52361.html?spm=a2c4g.11186623.6.710.d29c5b5cV9qi1Y
scroll的迭代查询Demo:
https://help.aliyun.com/document_detail/52362.html?spm=a2c4g.11186623.6.711.510c1d33MdAgmv
PHP案例
https://help.aliyun.com/document_detail/53711.html?spm=a2c4g.11186623.6.726.7e7f5b5caqFShu
应用操作API:
https://help.aliyun.com/document_detail/57155.html?spm=a2c4g.11186623.6.670.174b3c0fMAyQuF