Un port de Lunr.js à .NET Core. Lunr est un peu comme Solr, mais beaucoup plus petit et pas aussi brillant.
Un index de recherche très simple peut être créé en utilisant les éléments suivants:
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 " } ,
} ) ;
} ) ;
La recherche est alors aussi simple que:
await foreach ( Result result in index . Search ( " love " ) )
{
// do something with that result
}
Cela renvoie une liste de documents correspondants avec un score de la façon dont ils correspondent, de la requête de recherche ainsi que de toutes les métadonnées associées sur le match:
new List < Result >
{
new Result (
documentReference : " 1 " ,
score : 0.3535533905932737 ,
matchData : new MatchData (
term : " love " ,
field : " body "
)
)
}
Lunr-core est une petite bibliothèque de recherche en texte intégral pour une utilisation dans de petites applications. Il index des documents et fournit une interface de recherche simple pour récupérer des documents qui correspondent les mieux aux requêtes texte. Il est 100% compatible avec Lunr.js, ce qui signifie qu'un fichier d'index préparé sur le serveur avec Lunr-core peut être utilisé sur le client à l'aide de Lunr.js.
Lunr-core convient aux petites applications qui nécessitent un moteur de recherche simple mais sans les frais généraux d'un moteur de recherche à grande échelle tel que Lucene. Sa compatibilité avec Lunr.js ouvre également des scénarios de recherche côté client intéressant.