Playground Fuse.js
Playground interativo para testar e experimentar com a biblioteca de pesquisa difusa Fuse.js. Configure todas as opções de pesquisa e veja resultados em tempo real.
Entrada
Saída
| id | title | author | year | category |
|---|---|---|---|---|
| 1 | JavaScript: The Good Parts | Douglas Crockford | 2008 | Programming |
| 2 | Clean Code | Robert C. Martin | 2008 | Programming |
| 3 | The Pragmatic Programmer | Andrew Hunt | 1999 | Programming |
| 4 | Design Patterns | Gang of Four | 1994 | Software Engineering |
| 5 | Introduction to Algorithms | Thomas H. Cormen | 1990 | Computer Science |
| 6 | Code Complete | Steve McConnell | 1993 | Programming |
| 7 | Refactoring | Martin Fowler | 1999 | Software Engineering |
| 8 | The Mythical Man-Month | Frederick Brooks | 1975 | Project Management |
| 9 | Structure and Interpretation of Computer Programs | Harold Abelson | 1984 | Computer Science |
| 10 | Working Effectively with Legacy Code | Michael Feathers | 2004 | Programming |
Leia-me
O que é busca difusa?
A busca difusa é uma técnica de pesquisa que encontra correspondências mesmo quando a consulta de pesquisa não corresponde exatamente ao texto. Ao contrário da busca exata onde "maçã" encontra apenas "maçã", a busca difusa pode encontrar "maça" (com erro de digitação), "Maçã" (maiúsculas/minúsculas diferentes) ou até "maçãs" (forma plural). Isso funciona calculando o quão similares duas strings são, levando em conta erros de digitação, erros ortográficos, diferentes maiúsculas/minúsculas e variações menores. É essencial para criar experiências de busca amigáveis onde os usuários não precisam digitar consultas perfeitamente precisas para encontrar o que procuram.
Como funciona o Fuse.js?
Fuse.js é uma biblioteca JavaScript que implementa busca difusa usando um algoritmo de correspondência aproximada de strings. Funciona através de:
- Indexação: Criação de uma estrutura de dados eficiente a partir dos seus dados pesquisáveis
- Pontuação: Cálculo de uma pontuação de similaridade entre a consulta de pesquisa e cada item (0.0 = correspondência perfeita, 1.0 = sem correspondência)
- Filtragem: Retorno de resultados que atendem aos critérios de limite
- Classificação: Ordenação dos resultados por relevância com base em suas pontuações
A biblioteca usa opções configuráveis como limite (quão difusa a busca deve ser), localização (onde esperar correspondências) e distância (quão longe da localização esperada pesquisar), dando aos desenvolvedores controle refinado sobre o comportamento da busca.
Descrição da ferramenta
O Fuse.js Playground é um ambiente de teste interativo para a biblioteca de busca difusa Fuse.js. Permite que desenvolvedores experimentem com todas as opções de configuração de busca disponíveis e vejam resultados em tempo real em dados personalizados ou de exemplo. Você pode configurar chaves de busca com pesos personalizados, ajustar opções básicas como sensibilidade a maiúsculas e inclusão de pontuação, e ajustar parâmetros avançados como limite, localização e distância. A ferramenta fornece feedback visual imediato mostrando como as alterações de configuração afetam os resultados da busca, tornando-a ideal para prototipar funcionalidade de busca antes da implementação.
Recursos
- Entrada de dados personalizados: Carregue seus próprios dados JSON para testar o comportamento da busca em conjuntos de dados reais
- Chaves de busca configuráveis: Defina quais campos pesquisar com prioridades de peso personalizadas
- Resultados em tempo real: Feedback instantâneo ao modificar consultas ou opções de busca
- Opções básicas: Controle sensibilidade a maiúsculas, manipulação de diacríticos, ordenação e exibição de pontuação
- Ajuste fino avançado: Ajuste limite, localização, distância, normalização de campos e muito mais
- Sintaxe de busca estendida: Teste padrões de consulta avançados como busca por prefixo (^), correspondência exata (!) e mais
- Visualização de resultados: Visualize resultados de busca em uma tabela ordenável com pontuações de correspondência opcionais
- Conjunto de dados de exemplo: Coleção de livros pré-carregada para testes e experimentação imediatos
Exemplos
Busca básica:
- Consulta: "fantasia" → Encontra todos os livros na categoria fantasia
- Consulta: "tolkien" → Encontra livros do autor J.R.R. Tolkien
- Consulta: "senhor aneis" → Encontra "O Senhor dos Anéis" apesar das palavras faltantes
Correspondência difusa:
- Consulta: "hary poter" (erros de digitação) → Ainda encontra "Harry Potter"
- Consulta: "1984" → Encontra o livro de George Orwell
- Consulta: "ficcaocientifica" → Corresponde à categoria "Ficção Científica"
Busca estendida (quando ativada):
- Consulta: "^O" → Encontra títulos que começam com "O"
- Consulta: "!Fantasia" → Correspondência exata para a categoria "Fantasia"
- Consulta: "'Duna" → Encontra itens que incluem a palavra "Duna"
Opções de configuração
Chaves de busca:
- Defina quais campos pesquisar (ex. título, autor, categoria)
- Atribua pesos para priorizar certos campos (peso maior = mais importante)
Opções básicas:
- Sensível a maiúsculas: Corresponde exatamente a maiúsculas/minúsculas
- Incluir pontuação: Mostra pontuações de relevância (0.0 = perfeito, 1.0 = ruim)
- Ignorar diacríticos: Trata caracteres acentuados como sua forma base (é = e)
- Ordenar resultados: Ordena resultados por pontuação de relevância
- Encontrar todas as correspondências: Continua buscando após encontrar a primeira correspondência
Opções avançadas:
- Comprimento mín. de correspondência: Caracteres mínimos necessários para uma correspondência (padrão: 1)
- Localização: Posição esperada das correspondências no texto (padrão: 0 = início)
- Limite: Quão difusa a busca deve ser, de 0.0 (exato) a 1.0 (muito difuso)
- Distância: Distância máxima da localização esperada para pesquisar
- Usar busca estendida: Ativa sintaxe de consulta avançada (^, !, ', etc.)
- Ignorar localização: Não considerar posição ao fazer correspondências
- Ignorar norma de campo: Não levar em conta o comprimento do campo na pontuação
- Peso da norma de campo: Quanto o comprimento do campo afeta a pontuação
Casos de uso
- Teste de implementação de busca: Prototipagem e validação de funcionalidade de busca antes da codificação
- Configuração de API: Determinação de configurações ótimas do Fuse.js para sua aplicação
- Análise de comportamento de busca: Entender como diferentes opções afetam a qualidade dos resultados
- Demonstrações a clientes: Mostrar às partes interessadas como a busca se comportará com dados reais
- Aprender Fuse.js: Experimentação prática para entender as capacidades da biblioteca
- Teste de estrutura de dados: Verificar se sua estrutura de dados JSON funciona com busca difusa
- Ajuste de qualidade de busca: Ajustar limite e outros parâmetros para melhores resultados