Frolics es una biblioteca de búsqueda de texto completo fuera de línea, ligero y de texto completo para aplicaciones frontend.
Frolics está inspirado en Elasticsearch y Lucence, la implementación subyacente incluye algoritmos de procesamiento de texto y estructura de datos, como tokenización, siglo e índice invertido.
Cuando se proporciona un docs , Frolics crea datos de índice invetados en consecuencia, que se usa ampliamente en los principales servicios de búsqueda de texto completo, como Elasticsearch y Google Search.
A partir de ahora, puede omitir un proceso de instalación oneroso para llevar a cabo una búsqueda de texto completo, y aún mejor, es posible que ya no necesite un backend para desarrollar dicha característica.
¡Frolics está aquí para ayudar!
Antes de instalar frolics, asegúrese de que su versión de nodo sea compatible. El nodo V12+ está bien, pero se recomienda el nodo V16.
Sin embargo, el nodo V17+ tuvo un problema de compatibilidad cuando estaba probando frolics en reactjs. Pero el nodo V16 funcionaba bien.
Una vez hecho. Ejecute npm install frolics en terminal.
Antes de importar, se requieren datos sin procesar. Debería verse así:
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',
},
];
Tenga en cuenta que se requiere una id única y un contenido de texto en los campos body , ya que id distingue cada documento y body es el contenido que los frolics deben analizar y clasificar los datos de texto para buscar.
Además de id y body como los campos requeridos, puede tener múltiples para diferentes características. Por ejemplo, si desea una imagen de vista previa al buscar, puede alterar docs como este:
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',
},
];
Después de definir docs , estamos todos establecidos. El siguiente paso es usar frolics.
Frolics admite la sintaxis ES6, por lo tanto, puede importar así:
import { createDTM, Stemmer } from 'frolics';
import { docs } from "../assets/document.js" // Don't forget the raw data
Ahora puede llamar createDTM así:
const DTM = createDTM(docs);
createDTM es la función principal que toma docs y crea un diccionario de índice invertido.
Puede recortar su entrada original con Stemmer para obtener resultados buscados
const DTM = createDTM(docs);
const stemmedInput = Stemmer(input);
return DTM[stemmedInput]; // The result
Para el ejemplo detallado, visite la carpeta de ejemplo.
Lo que la función createDTM función devuelve es un diccionario de índice invertido. Se puede convertir en formato JSON legible por humanos con el método simple de JavaScript integrado JSON.stringify .
Puede elegir cualquier método de lectura de archivos basado en sus marcos y cargar el archivo JSON, si existe, antes de llamar a la función createDTM .