Todos los productos
Search
Centro de documentos

OpenSearch:Búsqueda con desplazamiento

Última actualización: Sep 04, 2026

La búsqueda con desplazamiento recupera conjuntos de resultados grandes mediante la iteración por lotes de documentos coincidentes. A diferencia de una búsqueda normal, que devuelve como máximo 5,000 documentos, esta función está diseñada para obtener más resultados allá de dicho límite.

La búsqueda con desplazamiento está pensada para tareas de procesamiento por lotes, como exportación de datos, análisis y trabajos de aprendizaje automático; no se recomienda para consultas interactivas o en tiempo real. Si el conjunto de resultados tiene menos de 5,000 documentos, utilice una búsqueda normal.

Funcionamiento de la búsqueda con desplazamiento

Una búsqueda con desplazamiento se ejecuta en dos fases:

  1. Iniciar el desplazamiento: envíe una solicitud de búsqueda con search_type=scan y un parámetro scroll. La respuesta devuelve un ID de desplazamiento, pero no incluye documentos.

  2. Recuperar lotes: pase el ID de desplazamiento de la respuesta anterior para obtener el siguiente lote de documentos. Repita este proceso hasta que el arreglo items en la respuesta esté vacío.

Cada ID de desplazamiento es válido durante el periodo especificado por el parámetro scroll. Si no recupera el siguiente lote antes de que expire el ID, la sesión de desplazamiento finaliza y debe reiniciar desde el paso 1.

Parámetros de la solicitud

Parámetro

Tipo

Obligatorio

Descripción

scroll

STRING

Sí

Periodo de validez del ID de desplazamiento. Se especifica como un número seguido de una unidad: semanas (w), días (d), horas (h), minutos (m) o segundos (s). Ejemplo: 1m. Es obligatorio solo en la primera solicitud.

search_type

STRING

Sí (solo en la primera solicitud)

Tipo de búsqueda con desplazamiento. Establezca este valor en scan. Es obligatorio únicamente en la primera solicitud.

scroll_id

STRING

Sí (en solicitudes subsecuentes)

ID de desplazamiento devuelto en la respuesta anterior. No es necesario en la primera solicitud.

fetch_fields

STRING

No

Campos que se devolverán en los resultados de la búsqueda.

Parámetros de la respuesta

Parámetro

Tipo

Descripción

status

STRING

Resultado de la solicitud. Valores válidos: OK (éxito) o FAIL (error). Si el valor es FAIL, revise el campo errors para consultar el código de error.

request_id

STRING

ID de la solicitud; se utiliza para solucionar problemas.

result

STRING

Resultados de la búsqueda. Incluye searchtime, total, num, viewtotal, items, facet y scroll_id.

errors

STRING

Detalles del error. El campo error_message contiene el mensaje de error. Consulte Error codes.

Los resultados de la búsqueda con desplazamiento se devuelven exclusivamente en formato fullJSON o JSON.

Ejecutar una búsqueda con desplazamiento

Paso 1: Iniciar el desplazamiento

Envíe la primera solicitud con search_type=scan y un valor para scroll. La respuesta contendrá un ID de desplazamiento y un arreglo items vacío; en esta etapa no se devuelve ningún documento.

Ejemplo de respuesta para la primera solicitud:

{
    "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": ""
}

Paso 2: Recuperar lotes de documentos

Pase el parámetro scroll_id de la respuesta anterior para obtener el siguiente lote. El ID de desplazamiento se actualiza en cada respuesta, por lo que siempre debe usar el más reciente.

Establezca el parámetro hit en la primera solicitud para definir el tamaño del lote. Este valor permanece fijo durante toda la sesión; modificar hit en solicitudes posteriores no tendrá efecto. Cada lote puede contener un máximo de 500 documentos.

Ejemplo de respuesta para una solicitud subsecuente:

{
    "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",
                    "litteral_arr": "Search",
                    "name": "Search",
                    "phone": "1381111****",
                    "index_name": "app_schema_demo"
                },
                "property": {},
                "attribute": {},
                "variableValue": {},
                "sortExprValues": [
                    "1"
                ]
            }
        ],
        "facet": []
    },
    "errors": [],
    "tracer": ""
}

Paso 3: Detectar el fin de los resultados

Cuando items es un arreglo vacío, significa que se han recuperado todos los documentos y la sesión de desplazamiento ha concluido. Deje de enviar solicitudes en este punto.

{
    "items": []
}

Limitaciones

Limitación

Detalles

Funciones no compatibles

No se admiten cláusulas de agregación, cláusulas distinct, expresiones de ordenamiento aproximado, expresiones de ordenamiento fino ni análisis de consultas.

Ordenamiento

Solo se permite ordenar por un único campo de tipo INT. Requiere OpenSearch API y SDK versión V3 o posterior.

Paginación

El parámetro start en la cláusula config no tiene efecto durante una búsqueda con desplazamiento. Siempre se usa el valor predeterminado 0 y no es posible saltar páginas.

Tamaño del lote

Cada lote puede contener un máximo de 500 documentos. Configure el parámetro hit en la primera solicitud para controlar la cantidad de documentos por lote.

Desplazamiento entre aplicaciones

No se admiten búsquedas con desplazamiento que abarquen varias aplicaciones.

Formato de respuesta

Los resultados se devuelven exclusivamente en formato fullJSON o JSON.

Solución de problemas

Error: "Scroll_id is expired"

El ID de desplazamiento expiró antes de recuperar el siguiente lote. Modifique el parámetro scroll y reinicie la sesión de desplazamiento desde el paso 1.

Scroll_id no válido

Si el valor del parámetro scroll_id en una solicitud no es válido, se producirá un error.

Comprobar errores

Utilice el código y el mensaje de error del campo errors para diagnosticar fallos; no confíe únicamente en el campo status. Consulte Error codes para ver la lista completa.

Pasos siguientes