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: ['reddiaria.example/deportes', 'diarioejemplo.example'],
  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["diarioejemplo.example", "reddiaria.example/economia"]Un dominio incluye sus subdominios; una ruta, todo lo que cuelga de ella. Hasta 20.
exclude_domains["mirador.example"]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["diarioejemplo.example", "reddiaria.example"]Dominios de fuentes del índice. Hasta 100.

Un dominio que no está en el índice, en sources o en include_domains, vuelve como un aviso domain_not_indexed en warnings, no como un error. ¿Te falta un medio? Sugiérelo desde el panel (Sugerir una fuente) o escríbenos a support@typesearch.ai.

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 el pasaje de cada nota leída que trata de tu consulta, citado textualmente, nunca reescrito. Los fragmentos son breves a propósito, porque la nota es de su medio:

  • como mucho un fragmento por nota (dos en deep), de hasta 25 palabras;
  • nunca sale del primer párrafo de la nota, y las notas breves (menos de 1.200 caracteres de texto) no tienen ninguno;
  • cada cliente recibe como mucho tres fragmentos distintos de la misma nota por día.

Para el resto, el resultado enlaza a la nota.

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

Sigue con

En esta página