Um driver do Laravel Scout que adiciona busca full-text a modelos Eloquent usando o mecanismo PHP TNTSearch, sem exigir um servidor de busca externo.
teamtnt/tntsearch
Uma biblioteca de busca full-text para PHP que cria índices em SQLite, MySQL ou Redis e retorna IDs de documentos classificados por relevância.
- Estrelas
- 3,201
- Forks
- 296
- Issues abertas
- 56
- Último commit
- há 4 dias
O que é?
TNTSearch é uma biblioteca PHP que adiciona busca full-text a uma aplicação sem precisar executar um servidor de busca separado. Basta apontá-la para uma fonte de dados, como um banco SQLite, MySQL ou PostgreSQL, ou uma pasta com arquivos de texto, criar um arquivo de índice e executar consultas nele. Por padrão, os índices são armazenados em SQLite; também há engines para MySQL e Redis, e eles podem ser atualizados com chamadas de inserção, atualização e exclusão, sem precisar recriá-los por completo.
A busca oferece classificação por relevância com BM25 e TF-IDF, consultas booleanas com AND, OR e NOT, correspondência aproximada com distância de edição configurável e busca por prefixo enquanto o usuário digita. Também inclui stemmers para vários idiomas, tokenizers personalizados, destaque de resultados e snippets, busca geográfica pelo ponto mais próximo e um classificador de texto simples.
Os métodos de busca retornam IDs e pontuações dos documentos, não os registros completos. Assim, a aplicação busca os registros correspondentes no próprio banco de dados e mantém a ordem retornada. Há um driver para Laravel Scout disponível em um pacote separado.
Recursos principais
- 01Classificação por relevância com BM25 e TF-IDF
- 02Busca booleana com os operadores AND, OR e NOT
- 03Correspondência aproximada com distância de edição e tamanho de prefixo ajustáveis
- 04Busca por prefixo enquanto o usuário digita
- 05Armazenamento de índices em SQLite, MySQL ou Redis, com atualizações incrementais
- 06Stemmers para vários idiomas e tokenizers personalizados
Casos de uso
- Adicionar busca ao site ou a produtos em uma aplicação PHP ou Laravel sem um servidor de busca separado
- Buscar em uma coleção de documentos armazenados como arquivos de texto
- Encontrar pontos de interesse próximos usando coordenadas
- Adicionar classificação de texto simples a um projeto PHP
Início rápido
- 1
Instale a biblioteca com o Composer
composer require teamtnt/tntsearch - 2
Configure o TNTSearch, crie um índice a partir da sua consulta de origem, selecione-o e pesquise
Antes de usar
- A pesquisa retorna os IDs e as pontuações dos documentos, não os documentos em si; por isso, você precisa buscar as linhas no seu próprio banco de dados.
- O mecanismo padrão requer PHP 7.4 ou mais recente e a extensão pdo_sqlite.
Em coleções
Tópicos
Perguntas frequentes
- O que é tntsearch?
- Uma biblioteca de busca full-text para PHP que cria índices em SQLite, MySQL ou Redis e retorna IDs de documentos classificados por relevância. TNTSearch é uma biblioteca PHP que adiciona busca full-text a uma aplicação sem precisar executar um servidor de busca separado. Basta apontá-la para uma fonte de dados, como um banco SQLite, MySQL ou PostgreSQL, ou uma pasta com arquivos de texto, criar um arquivo de índice e executar consultas nele. Por padrão, os índices são armazenados em SQLite; também há engines para MySQL e Redis, e eles podem ser atualizados com chamadas de inserção, atualização e exclusão, sem precisar recriá-los por completo.
- tntsearch é gratuito? Qual é a licença?
- tntsearch é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- tntsearch ainda é mantido?
- Manutenção ativa. O último commit de tntsearch foi em 3 de nov. de 2026.
- Para que posso usar tntsearch?
- Adicionar busca ao site ou a produtos em uma aplicação PHP ou Laravel sem um servidor de busca separado Buscar em uma coleção de documentos armazenados como arquivos de texto Encontrar pontos de interesse próximos usando coordenadas Adicionar classificação de texto simples a um projeto PHP
- Como instalar tntsearch?
- Instale a biblioteca com o Composer: composer require teamtnt/tntsearch Configure o TNTSearch, crie um índice a partir da sua consulta de origem, selecione-o e pesquise
- Onde consigo tntsearch?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/teamtnt/tntsearch
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um módulo do Redis que adiciona busca full-text, indexação secundária, busca por similaridade vetorial e consultas de agregação aos dados do Redis.
Typesense é um mecanismo de busca open source, em memória, com tolerância a erros de digitação, facetas, busca geográfica e busca vetorial, criado para ser uma alternativa mais simples ao Algolia e ao Elasticsearch.
Biblioteca de busca full-text em Rust, inspirada no Apache Lucene, para adicionar busca personalizada a aplicações.
Banco de dados de busca open source com suporte a busca full-text, vetorial e híbrida, indexação em tempo real e SQL, como alternativa ao Elasticsearch.
Biblioteca Rust em processo e servidor multi-tenant para busca lexical, vetorial e híbrida, com servidor MCP para agentes de IA.