Un driver de Laravel Scout que añade búsqueda de texto completo a los modelos Eloquent mediante el motor PHP TNTSearch, sin un servidor de búsqueda externo.
teamtnt/tntsearch
Una biblioteca de búsqueda de texto completo para PHP que crea índices en SQLite, MySQL o Redis y devuelve IDs de documentos ordenados por relevancia.
- Estrellas
- 3,201
- Forks
- 296
- Issues abiertos
- 56
- Último commit
- hace 4 días
¿Qué es?
TNTSearch es una biblioteca de PHP para añadir búsqueda de texto completo a una aplicación sin ejecutar un servidor de búsqueda aparte. Se le indica una fuente de datos, como una base de datos SQLite, MySQL o PostgreSQL, o una carpeta con archivos de texto; luego se crea un archivo de índice y se ejecutan consultas sobre él. De forma predeterminada, los índices se almacenan en SQLite. También hay motores para MySQL y Redis, y se pueden actualizar mediante llamadas para insertar, actualizar y eliminar datos, sin tener que reconstruirlos por completo.
La búsqueda admite clasificación por relevancia con BM25 y TF-IDF, consultas booleanas con AND, OR y NOT, coincidencias aproximadas con una distancia de edición configurable y búsqueda por prefijos mientras se escribe. También incluye stemmers para varios idiomas, tokenizadores personalizados, resaltado de resultados y fragmentos de texto, búsqueda geográfica del punto más cercano y un clasificador de texto sencillo.
Los métodos de búsqueda devuelven IDs de documentos y puntuaciones, no filas completas, por lo que la aplicación obtiene los registros coincidentes de su propia base de datos y conserva el orden devuelto. Hay un driver para Laravel Scout disponible en un paquete aparte.
Funciones clave
- 01Clasificación por relevancia con BM25 y TF-IDF
- 02Búsqueda booleana con los operadores AND, OR y NOT
- 03Coincidencias aproximadas con distancia de edición y longitud de prefijo ajustables
- 04Búsqueda por prefijos mientras se escribe
- 05Almacenamiento de índices en SQLite, MySQL o Redis con actualizaciones incrementales
- 06Stemmers para varios idiomas y tokenizadores personalizados
Casos de uso
- Añadir búsqueda de sitios o productos a una aplicación PHP o Laravel sin un servidor de búsqueda aparte
- Buscar en una colección de documentos almacenados como archivos de texto
- Encontrar puntos de interés cercanos mediante coordenadas
- Añadir clasificación de texto sencilla a un proyecto de PHP
Inicio rápido
- 1
Instala la biblioteca con Composer
composer require teamtnt/tntsearch - 2
Configura TNTSearch, crea un índice a partir de tu consulta de origen, selecciónalo y busca
Antes de usarlo
- La búsqueda devuelve los ID y las puntuaciones de los documentos, no los documentos en sí; por eso, debes obtener las filas de tu propia base de datos.
- El motor predeterminado requiere PHP 7.4 o una versión posterior y la extensión pdo_sqlite.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es tntsearch?
- Una biblioteca de búsqueda de texto completo para PHP que crea índices en SQLite, MySQL o Redis y devuelve IDs de documentos ordenados por relevancia. TNTSearch es una biblioteca de PHP para añadir búsqueda de texto completo a una aplicación sin ejecutar un servidor de búsqueda aparte. Se le indica una fuente de datos, como una base de datos SQLite, MySQL o PostgreSQL, o una carpeta con archivos de texto; luego se crea un archivo de índice y se ejecutan consultas sobre él. De forma predeterminada, los índices se almacenan en SQLite. También hay motores para MySQL y Redis, y se pueden actualizar mediante llamadas para insertar, actualizar y eliminar datos, sin tener que reconstruirlos por completo.
- ¿tntsearch es gratuito? ¿Qué licencia tiene?
- tntsearch es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿tntsearch sigue mantenido?
- Mantenimiento activo. El último commit de tntsearch fue el 3 nov 2026.
- ¿Para qué puedo usar tntsearch?
- Añadir búsqueda de sitios o productos a una aplicación PHP o Laravel sin un servidor de búsqueda aparte Buscar en una colección de documentos almacenados como archivos de texto Encontrar puntos de interés cercanos mediante coordenadas Añadir clasificación de texto sencilla a un proyecto de PHP
- ¿Cómo se instala tntsearch?
- Instala la biblioteca con Composer: composer require teamtnt/tntsearch Configura TNTSearch, crea un índice a partir de tu consulta de origen, selecciónalo y busca
- ¿Dónde consigo tntsearch?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/teamtnt/tntsearch
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un módulo de Redis que añade búsqueda de texto completo, índices secundarios, búsquedas de similitud vectorial y consultas de agregación a los datos de Redis.
Typesense es un motor de búsqueda de código abierto y en memoria, con tolerancia a errores tipográficos, facetas, búsqueda geográfica y vectorial, pensado como una alternativa más sencilla a Algolia y Elasticsearch.
Biblioteca de búsqueda de texto completo en Rust, inspirada en Apache Lucene, para integrar búsquedas personalizadas en aplicaciones.
Base de datos de búsqueda de código abierto con búsqueda de texto completo, vectorial e híbrida, indexación en tiempo real y SQL; una alternativa a Elasticsearch.
Biblioteca Rust integrada en el proceso y servidor multiinquilino para búsquedas léxicas, vectoriales e híbridas, con un servidor MCP para agentes de IA.