typestar

Ordenar y resaltar coincidencias en SQL

Un resultado de búsqueda necesita orden y vista previa, y FTS5 trae ambos integrados.

SELECT
    title,
    ROUND(BM25(doc_search, 10.0, 1.0), 3) AS score,
    SNIPPET(doc_search, 1, '[', ']', '...', 8) AS preview,
    HIGHLIGHT(doc_search, 0, '<b>', '</b>') AS marked_title
FROM doc_search
WHERE doc_search MATCH 'plan*'
ORDER BY rank
LIMIT 10;

Cómo funciona

  1. ORDER BY rank ordena por relevancia bm25; más negativo es mejor.
  2. bm25() acepta pesos por columna: un acierto en el título puede superar a uno en el cuerpo.
  3. snippet() devuelve el fragmento coincidente con tus propios marcadores alrededor.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
9
Caracteres a escribir
243
Tokens
64
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 40 segundos.

Escribe este fragmento

Paso 3 de 4 en Búsqueda de texto completo; paso 11 de 14 en JSON y búsqueda.

← Anterior Siguiente →