Introdução geral
O Orama é um mecanismo de pesquisa de código aberto e de alto desempenho, escrito inteiramente em TypeScript, com suporte para pesquisa de texto completo, pesquisa vetorial e pesquisa híbrida. O Orama foi projetado para funcionar em qualquer ambiente de tempo de execução de JavaScript para fornecer funcionalidade de pesquisa rápida e confiável. Ele foi projetado para ser leve (menos de 2 KB), mas poderoso, adequado a uma variedade de cenários de aplicativos, incluindo navegadores, servidores e redes de borda. O Orama oferece um rico conjunto de recursos, como pesquisa de texto completo, pesquisa vetorial, pesquisa híbrida, pesquisa geográfica, tolerância à ortografia e suporte a vários idiomas etc., para atender a uma variedade de necessidades de pesquisa, desde pequenos projetos até grandes aplicativos corporativos.
Lista de funções
- Pesquisa de texto completoSuporte a pesquisas de texto completo rápidas e precisas de conteúdo de texto.
- pesquisa vetorialPesquisa baseada em vetores: oferece suporte à pesquisa baseada em vetores para dados não textuais, como imagens e áudio.
- Pesquisa híbridaCombinação de pesquisas de texto completo e vetoriais para fornecer resultados de pesquisa mais abrangentes.
- alto desempenhoAlgoritmos de pesquisa otimizados para garantir uma resposta rápida apesar dos grandes volumes de dados.
- expandir seus recursos financeirosCódigo-fonte totalmente aberto, permitindo que os usuários personalizem e expandam conforme necessário.
- não dependenteNão são necessárias dependências externas, o que simplifica a instalação e o uso.
- Suporte a várias plataformasCompatível com vários ambientes de tempo de execução de JavaScript, incluindo Node.js e navegadores.
- Pesquisa geográficaSuporte à funcionalidade de pesquisa baseada em localização.
- tolerância ortográficaTolerância a erros de ortografia para aprimorar a experiência de pesquisa.
- Suporte a vários idiomasSuporte a stemming e tokenização em 30 idiomas.
Usando a Ajuda
montagem
O Orama pode ser instalado usando npm, yarn ou pnpm. Aqui estão as etapas para a instalação com o npm:
- Abra um terminal ou uma ferramenta de linha de comando.
- Execute o seguinte comando para instalar o Orama:
npm install @orama/orama
- Quando a instalação estiver concluída, você poderá introduzir o Orama em seu projeto:
import { create, insert, search } from '@orama/orama' ;
fazer uso de
Criação de índices
- Criar um novo índice:
const db = create({
schema: {
name: 'string',
description: 'string', price: 'number', embedding: 'vector[1536]', }
embedding: 'vector[1536]', meta: {
meta: {
rating: 'number',
}, }
}, }
}).
- Adicionar documentos ao índice:
insert(db, {
name: 'Noise cancelling headphones', description: 'Best noise cancelling headphones on the market', {
description: 'Melhores fones de ouvido com cancelamento de ruído do mercado',
nome: 'Fones de ouvido com cancelamento de ruído', descrição: 'Os melhores fones de ouvido com cancelamento de ruído do mercado', preço: 99,99,
embedding: [0.2432, 0.9431, 0.5322, 0.4234, ...] ,
meta: { rating: 4.5 }, }); }
}).
- Realizar uma pesquisa:
const results = search(db, { term: 'Best headphones' });
console.log(results);
pesquisa vetorial
- Cria um índice de vetor:
const vectorIndex = create({
schema: {
name: 'string',
embedding: 'vector[1536]',
},
});
- Adiciona o vetor ao índice:
insert(vectorIndex, {
name: 'Sample vector',
embedding: [0.1, 0.2, 0.3, ...] ,
}).
- Executa uma pesquisa vetorial:
const vectorResults = search(vectorIndex, {
term: 'Sample vector', mode: 'vector', {
}); console.log(vectorResults);
console.log(vectorResults);
Recursos avançados
O Orama também oferece vários recursos avançados, como importação de dados personalizados, verificações de qualidade, ferramentas de análise e configurações de segurança. Os usuários podem configurá-los conforme necessário para otimizar a experiência de pesquisa.
Exemplos de projetos
O Orama tem sido usado por vários sites conhecidos, como nodejs.org, jsr.io e tanstack.com, que processam milhões de consultas por dia, demonstrando o poder e a confiabilidade do Orama.