Um pouco como o Solr, mas muito menor e não tão brilhante.
Um índice de pesquisa muito simples pode ser criado usando o seguinte:
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"
} )
} )
Então pesquisar é tão simples quanto:
idx . search ( "love" )
Isso retorna uma lista de documentos correspondentes com uma pontuação de quão próximos eles correspondem à consulta de pesquisa, bem como quaisquer metadados associados sobre a correspondência:
[
{
"ref" : "1" ,
"score" : 0.3535533905932737 ,
"matchData" : {
"metadata" : {
"love" : {
"body" : { }
}
}
}
}
]
A documentação da API está disponível, bem como um exemplo funcional completo.
Lunr.js é uma pequena biblioteca de pesquisa de texto completo para uso no navegador. Ele indexa documentos JSON e fornece uma interface de pesquisa simples para recuperar documentos que melhor correspondam às consultas de texto.
Para aplicações web com todos os seus dados já armazenados no cliente, faz sentido poder pesquisar esses dados também no cliente. Ele economiza a adição de serviços compactados extras no servidor. Um índice de pesquisa local será mais rápido, não haverá sobrecarga de rede e permanecerá disponível e utilizável mesmo sem uma conexão de rede.
Basta incluir o arquivo fonte lunr.js na página em que deseja usá-lo. Lunr.js é compatível com todos os navegadores modernos.
Alternativamente, um pacote npm também está disponível npm install lunr
.
Os navegadores que não suportam ES5 exigirão um shim JavaScript para que o Lunr funcione. Você pode usar Augment.js, ES5-Shim ou qualquer biblioteca que corrija navegadores antigos para fornecer um ambiente JavaScript compatível com ES5.
Consulte o arquivo CONTRIBUTING.md
.