Buscar en el índice

Consultas, filtros y cómo leer cada resultado.

POST /v1/search busca en el índice y devuelve las notas relevantes, de más a menos relevante.

const res = await ts.search('Boca Juniors', {
  mode: 'fast',
  max_results: 10,
  include_domains: ['infobae.com/deportes', 'lanacion.com.ar'],
  days: 3,
});

Cómo escribir la consulta

Una consulta es un tema, no una pregunta: el dólar, Boca Juniors, la visita del papa. Entre 2 y 200 caracteres.

Para encontrar más, escríbela como la escribiría la cobertura que buscas: en español para la prensa argentina, con el nombre que usan los titulares. Las siglas y las paráfrasis aparecen menos que el nombre mismo.

Filtros

Los filtros se aplican antes de juzgar nada: lo que filtras no cuesta.

FiltroEjemploNotas
include_domains["lanacion.com.ar", "infobae.com/economia"]Un dominio incluye sus subdominios; una ruta, todo lo que cuelga de ella. Hasta 20.
exclude_domains["perfil.com"]Las mismas reglas.
sections["economia", "politica"]La sección que declara la fuente, o el primer tramo de la ruta.
days3Los últimos N días. null busca en todo el índice. Por defecto, 7.
published_after, published_before"2026-09-20"Una fecha sola cubre el día entero; una fecha y hora necesita la zona.
sources["lanacion", "infobae"]Ids de GET /v1/sources.

Un dominio que no está en el índice vuelve como un aviso domain_not_indexed en warnings, no como un error.

Cómo leer los resultados

Cada resultado trae un score: la probabilidad calibrada de que la nota trate de tu consulta. Sale de la nota si se leyó (read viene completo) y del titular si no. Los resultados son las notas con 0.5 o más:

scoreQué significa
0.65 – 1Relevante.
0.5 – 0.65Sin decidir. Se devuelve, pero el modelo no está seguro: no tomes 0.56 como un sí débil.

Calibrada quiere decir que puedes ponerle un umbral: entre muchos resultados con 0.9, cerca de nueve de cada diez son relevantes. Si tu agente necesita certeza, quédate con los de más de 0.8, o usa el modo normal para que los mejores se lean antes de ordenarlos.

Además de results, la respuesta cuenta qué pasó en los bordes:

  • rejected: notas cuyo titular parecía relevante pero que quedaron por debajo de 0.6 al leerlas.
  • near_misses: si nada llega a 0.5, lo que más se acercó (desde 0.15), para que tu agente decida si ampliar la consulta.
  • total: cuántas notas relevantes hay, que pueden ser más que max_results.

Fragmentos

En normal y deep, con highlights: true recibes hasta dos fragmentos textuales por nota leída, de hasta 280 caracteres: los párrafos que tratan de tu consulta. Se citan, nunca se reescriben.

const res = await ts.search('el Presupuesto 2027', { mode: 'normal', highlights: true });
console.log(res.results[0]?.highlights);

Sigue con

En esta página