Frolics est une bibliothèque de recherche en texte complet hors ligne pour les applications frontales.
Frolics est inspiré par Elasticsearch et Lucence, l'implémentation sous-jacente comprend des algorithmes de traitement de texte et une structure de données tels que la tokenisation, le tige et l'index inversé.
Lorsqu'un docs est fourni, Frolics crée des données d'index invepées en conséquence, qui est largement utilisée dans les principaux services de recherche en texte intégral tels que Elasticsearch et Google Search.
À partir de maintenant, vous pouvez omettre le processus d'installation onéreux pour effectuer une recherche en texte intégral, et encore mieux, vous n'aurez peut-être plus besoin d'un backend pour développer une telle fonctionnalité.
Frolics est là pour aider!
Avant d'installer Frolics, assurez-vous que votre version de nœud est compatible. Le nœud V12 + est OK mais le nœud V16 est recommandé.
Cependant, le nœud V17 + avait un problème de compatibilité lorsque je testais des Frolics dans ReactJS. Mais le nœud V16 fonctionnait bien.
Une fois terminé. Exécutez npm install frolics dans le terminal.
Avant l'importation, des données brutes sont nécessaires. Cela devrait ressembler à ceci:
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',
},
];
Gardez à l'esprit qu'un id unique et un contenu texte des champs body sont requis car id distingue chaque document et body est le contenu que Frolics doit analyser et classer les données texte pour la recherche.
En additioal à id et body comme les champs requis, vous pouvez en avoir plusieurs pour différentes fonctionnalités. Par exemple, si vous voulez une image d'aperçu lors de la recherche, vous pouvez modifier docs comme ceci:
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',
},
];
Après avoir défini docs , nous sommes tous définis. La prochaine étape consiste à utiliser des froliques.
Frolics prend en charge la syntaxe ES6, vous pouvez donc importer comme ceci:
import { createDTM, Stemmer } from 'frolics';
import { docs } from "../assets/document.js" // Don't forget the raw data
Vous pouvez maintenant appeler createDTM comme ceci:
const DTM = createDTM(docs);
Le createDTM est la fonction principale qui prend docs et crée un dictionnaire d'index inversé.
Vous pouvez couper votre entrée d'origine avec Stemmer pour obtenir des résultats recherchés
const DTM = createDTM(docs);
const stemmedInput = Stemmer(input);
return DTM[stemmedInput]; // The result
Pour l'exemple détaillé, veuillez visiter l'exemple de dossier.
Ce que la fonction createDTM renvoie est un dictionnaire d'index inversé. Il peut être converti au format JSON lisible par l'homme avec la méthode JSON.stringify JavaScript simple.
Vous pouvez choisir n'importe quelle méthode de lecture de fichiers en fonction de vos frameworks et charger le fichier JSON, si existe, avant d'appeler la fonction createDTM .