Порт LUNR.JS в .NET CORE. LUNR немного похож на Solr, но намного меньше и не такой яркий.
Очень простой индекс поиска может быть создан с помощью следующего:
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 " } ,
} ) ;
} ) ;
Затем поиск так же прост, как:
await foreach ( Result result in index . Search ( " love " ) )
{
// do something with that result
}
Это возвращает список соответствующих документов со счетом того, насколько близко они соответствуют, поисковый запрос, а также любые связанные метаданные о матче:
new List < Result >
{
new Result (
documentReference : " 1 " ,
score : 0.3535533905932737 ,
matchData : new MatchData (
term : " love " ,
field : " body "
)
)
}
LUNR-CORE-небольшая полнотекстовая библиотека поиска для использования в небольших приложениях. Он индексирует документы и предоставляет простой поисковый интерфейс для получения документов, которые лучше всего соответствуют текстовым запросам. Он на 100% совместим с LUNR.JS, что означает, что индексный файл, подготовленный на сервере с LUNR-CORE, может использоваться на клиенте с использованием LUNR.JS.
LUNR-CORE подходит для небольших приложений, которые требуют простой поисковой системы, но без накладных расходов полномасштабной поисковой системы, такой как Lucene. Его совместимость с Lunr.js также открывает некоторые интересные сценарии поиска на стороне клиента.