Ein Port von Lunr.js zu .net Core. Lunr ist ein bisschen wie Solr, aber viel kleiner und nicht so hell.
Ein sehr einfacher Suchindex kann mit Folgendem erstellt werden:
var index = await Index . Build ( async builder =>
{
builder
. AddField ( " title " )
. AddField ( " body " ) ;
await builder . Add ( new Document
{
{ " 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:
await foreach ( Result result in index . Search ( " love " ) )
{
// do something with that result
}
Dies gibt eine Liste mit passenden Dokumenten zurück, wobei eine Punktzahl darüber entspricht, wie genau sie übereinstimmen, die Suchabfrage sowie alle zugehörigen Metadaten über das Match:
new List < Result >
{
new Result (
documentReference : " 1 " ,
score : 0.3535533905932737 ,
matchData : new MatchData (
term : " love " ,
field : " body "
)
)
}
Lunr-Core ist eine kleine Suchbibliothek mit Volltext für die Verwendung in kleinen Anwendungen. Es zeigt Dokumente und bietet eine einfache Suchschnittstelle zum Abrufen von Dokumenten, die am besten mit Textabfragen übereinstimmen. Es ist zu 100% kompatibel mit Lunr.js, was bedeutet, dass eine auf dem Server mit Lunr-Core erstellte Indexdatei mithilfe von Lunr.j. am Client verwendet werden kann.
Lunr-Core eignet sich für kleine Anwendungen, die eine einfache Suchmaschine erfordern, jedoch ohne den Overhead einer Suchmaschine wie Lucene. Die Kompatibilität mit Lunr.js eröffnet auch einige interessante sanftseitige Suchszenarien.