A Frolics é uma biblioteca de pesquisa offline, leve e de texto completo para aplicações de front-end.
Os Frolics são inspirados no Elasticsearch e na Lucence, a implementação subjacente inclui algoritmos de processamento de texto e estrutura de dados, como tokenização, índice de decorrer e invertido.
Quando um docs é fornecido, os Frolics cria dados de índice invetados de acordo, o que é amplamente utilizado nos principais serviços de pesquisa de texto completo, como Elasticsearch e Pesquisa do Google.
A partir de agora, você pode omitir o processo oneoso de instalação para realizar uma pesquisa de texto completo e, melhor ainda, você não precisa mais de um back-end para desenvolver esse recurso.
Frolics está aqui para ajudar!
Antes de instalar os brincalhões, verifique se a versão do nó é compatível. O nó v12+ está ok, mas o nó v16 é recomendado.
No entanto, o Node V17+ teve um problema de compatibilidade quando eu estava testando brincadeiras no ReactJS. Mas o Node V16 estava funcionando bem.
Uma vez feito. Execute npm install frolics no terminal.
Antes de importar, são necessários dados brutos. Deve ser assim:
const docs = [
{
id: 1,
body: 'this is a test full text'
},
{
id: 2,
body: 'can you can a can as a canner who can can a can',
},
];
Lembre -se de que um id exclusivo e um conteúdo de texto em campos body são necessários, pois id distingue cada documento e body é o conteúdo que as brincadeiras precisam analisar e classificar dados de texto para pesquisa.
Além do id e body , conforme necessário, você pode ter vários recursos para diferentes recursos. Por exemplo, se você deseja uma imagem de visualização ao pesquisar, pode alterar docs como o seguinte:
const docs = [
{
id: 1,
body: 'this is a test full text',
// imagesURL field is totally optional, you can have different name and data structure
imagesURL: 'https://yourImage.com/img1.png',
},
{
id: 2,
body: 'can you can a can as a canner who can can a can',
},
];
Depois de definir docs , estamos todos definidos. O próximo passo é usar brincadeiras.
Os Frolics suportam a sintaxe ES6, portanto, você pode importar assim:
import { createDTM, Stemmer } from 'frolics';
import { docs } from "../assets/document.js" // Don't forget the raw data
Agora você pode ligar para createDTM como este:
const DTM = createDTM(docs);
O createDTM é a principal função que pega docs e cria um dicionário de índice invertido.
Você pode aparar sua entrada original com Stemmer para obter resultados pesquisados
const DTM = createDTM(docs);
const stemmedInput = Stemmer(input);
return DTM[stemmedInput]; // The result
Para o exemplo detalhado, visite a pasta Exemplo.
O que a função createDTM retorna é um dicionário de índice invertido. Ele pode ser convertido em formato JSON legível por humanos com o método simples de JavaScript Função JSON.stringify .
Você pode escolher qualquer método de leitura de arquivos com base em suas estruturas e carregar o arquivo JSON, se existir, antes de chamar a função createDTM .