Un poco como Solr, pero mucho más pequeño y no tan brillante.
Se puede crear un índice de búsqueda muy simple usando lo siguiente:
var idx = lunr ( function ( ) {
this . field ( 'title' )
this . field ( 'body' )
this . add ( {
"title" : "Twelfth-Night" ,
"body" : "If music be the food of love, play on: Give me excess of it…" ,
"author" : "William Shakespeare" ,
"id" : "1"
} )
} )
Entonces buscar es tan simple como:
idx . search ( "love" )
Esto devuelve una lista de documentos coincidentes con una puntuación de qué tan estrechamente coinciden con la consulta de búsqueda, así como cualquier metadato asociado sobre la coincidencia:
[
{
"ref" : "1" ,
"score" : 0.3535533905932737 ,
"matchData" : {
"metadata" : {
"love" : {
"body" : { }
}
}
}
}
]
La documentación de la API está disponible, así como un ejemplo funcional completo.
Lunr.js es una pequeña biblioteca de búsqueda de texto completo para usar en el navegador. Indexa documentos JSON y proporciona una interfaz de búsqueda sencilla para recuperar los documentos que mejor coincidan con las consultas de texto.
Para aplicaciones web con todos sus datos ya almacenados en el cliente, tiene sentido poder buscar esos datos también en el cliente. Ahorra agregar servicios adicionales y compactados en el servidor. Un índice de búsqueda local será más rápido, no habrá sobrecarga de red y permanecerá disponible y utilizable incluso sin una conexión de red.
Simplemente incluya el archivo fuente lunr.js en la página en la que desea usarlo. Lunr.js es compatible con todos los navegadores modernos.
Alternativamente, también está disponible un paquete npm npm install lunr
.
Los navegadores que no son compatibles con ES5 requerirán una corrección de JavaScript para que Lunr funcione. Puede utilizar Augment.js, ES5-Shim o cualquier biblioteca que parchee navegadores antiguos para proporcionar un entorno JavaScript compatible con ES5.
Consulte el archivo CONTRIBUTING.md
.