Um porto de Lunr.js para .Net Core. Lunr é um pouco como Solr, mas muito menor e não tão brilhante.
Um índice de pesquisa muito simples pode ser criado usando o seguinte:
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 " } ,
} ) ;
} ) ;
Então a pesquisa é tão simples quanto:
await foreach ( Result result in index . Search ( " love " ) )
{
// do something with that result
}
Isso retorna uma lista de documentos correspondentes com uma pontuação de quão perto eles correspondem, a consulta de pesquisa e qualquer metadado associado sobre a partida:
new List < Result >
{
new Result (
documentReference : " 1 " ,
score : 0.3535533905932737 ,
matchData : new MatchData (
term : " love " ,
field : " body "
)
)
}
O Lunr-Core é uma pequena biblioteca de pesquisa de texto completo para uso em pequenos aplicativos. Ele indexa documentos e fornece uma interface de pesquisa simples para recuperar documentos que melhor correspondem às consultas de texto. É 100% compatível com o LUNR.JS, o que significa que um arquivo de índice preparado no servidor com lunr-core pode ser usado no cliente usando o lunr.js.
O LUNR-Core é adequado para pequenas aplicações que requerem um mecanismo de pesquisa simples, mas sem a sobrecarga de um mecanismo de pesquisa em larga escala, como o Lucene. Sua compatibilidade com o Lunr.js também abre alguns cenários interessantes de pesquisa do lado do cliente.