Ein bisschen wie Solr, aber viel kleiner und nicht so hell.
Ein sehr einfacher Suchindex kann wie folgt erstellt werden:
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"
} )
} )
Dann ist die Suche so einfach wie:
idx . search ( "love" )
Dies gibt eine Liste übereinstimmender Dokumente mit einer Bewertung zurück, die angibt, wie gut sie mit der Suchabfrage übereinstimmen, sowie alle zugehörigen Metadaten zur Übereinstimmung:
[
{
"ref" : "1" ,
"score" : 0.3535533905932737 ,
"matchData" : {
"metadata" : {
"love" : {
"body" : { }
}
}
}
}
]
Es steht eine API-Dokumentation sowie ein vollständiges Funktionsbeispiel zur Verfügung.
Lunr.js ist eine kleine Volltextsuchbibliothek zur Verwendung im Browser. Es indiziert JSON-Dokumente und bietet eine einfache Suchoberfläche zum Abrufen von Dokumenten, die am besten zu Textabfragen passen.
Bei Webanwendungen, deren Daten sich bereits im Client befinden, ist es sinnvoll, diese Daten auch auf dem Client durchsuchen zu können. Es erspart das Hinzufügen zusätzlicher, komprimierter Dienste auf dem Server. Ein lokaler Suchindex ist schneller, verursacht keinen Netzwerk-Overhead und bleibt auch ohne Netzwerkverbindung verfügbar und nutzbar.
Fügen Sie einfach die Quelldatei lunr.js in die Seite ein, auf der Sie sie verwenden möchten. Lunr.js wird in allen modernen Browsern unterstützt.
Alternativ ist auch ein npm-Paket npm install lunr
verfügbar.
Browser, die ES5 nicht unterstützen, benötigen einen JavaScript-Shim, damit Lunr funktioniert. Sie können entweder Augment.js, ES5-Shim oder eine beliebige Bibliothek verwenden, die alte Browser patcht, um eine ES5-kompatible JavaScript-Umgebung bereitzustellen.
Siehe die Datei CONTRIBUTING.md
.