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
ORDER BY rankordena por relevancia bm25; más negativo es mejor.bm25()acepta pesos por columna: un acierto en el título puede superar a uno en el cuerpo.snippet()devuelve el fragmento coincidente con tus propios marcadores alrededor.
Palabras clave y builtins usados aquí
ASBYFROMLIMITMATCHORDERSELECTWHERE
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.
Paso 3 de 4 en Búsqueda de texto completo; paso 11 de 14 en JSON y búsqueda.