Ir al contenido

Retrieval (RETRIEVE)

El retrieval es una fuente de relación dentro de OSL-SQL: la función de tabla RETRIEVE(...). Ya no existe un endpoint /osl/retrieve separado — haces SELECT sobre RETRIEVE(...) en un body de POST /osl/query.

SELECT text, score, customer_id
FROM RETRIEVE(facet => 'meeting_transcripts',
query => 'european equity exposure',
top_k => 5)
  • facet — una UnstructuredFacet declarada.
  • query — texto natural; el motor lo embebe con el modelo declarado en la faceta.
  • top_k — debe satisfacer ≤ facet.retrieval.max_top_k.
  • Los filtros de metadata los aplica el store gobernado (predicados de fila por sujeto) antes del recorte por overfetch de la ACL.

Cada passage devuelto lleva un bloque cite (source · doc · chunk) y su clave de entidad desnormalizada, para que los resultados puedan atribuirse y correlacionarse.

{
"text": "Anna wants to increase EU equity exposure […]",
"score": 0.91,
"customer_id": "9c1e…f04a",
"cite": { "source": "gong://…", "doc_id": "meet-2026-05-08-7a3c", "chunk_id": "chk-…" },
"redacted_fields": []
}
  • Versión de redacción. La faceta se sirve en la versión de redacción requerida por el sujeto — exacta-o-deny. Los campos de metadata redactados se listan en redacted_fields.
  • ACL a nivel de fila. Deny-by-default: un actor sin grant obtiene cero passages.
  • Aislamiento. La consulta abre solo la tabla Lance de la versión seleccionada — sin canal lateral a vectores menos redactados.