Немного похож на Солр, но гораздо меньше и не такой яркий.
Очень простой поисковый индекс можно создать, используя следующее:
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"
} )
} )
Тогда поиск так же прост, как:
idx . search ( "love" )
Это возвращает список совпадающих документов с оценкой того, насколько близко они соответствуют поисковому запросу, а также любые связанные метаданные о совпадении:
[
{
"ref" : "1" ,
"score" : 0.3535533905932737 ,
"matchData" : {
"metadata" : {
"love" : {
"body" : { }
}
}
}
}
]
Доступна документация по API, а также полный рабочий пример.
Lunr.js — небольшая библиотека полнотекстового поиска для использования в браузере. Он индексирует документы JSON и предоставляет простой интерфейс поиска для поиска документов, которые лучше всего соответствуют текстовым запросам.
Для веб-приложений, все данные которых уже находятся в клиенте, имеет смысл иметь возможность поиска этих данных и на клиенте. Это позволяет избежать добавления дополнительных сжатых сервисов на сервере. Индекс локального поиска будет работать быстрее, не будет нагружать сеть и останется доступным и пригодным для использования даже без сетевого подключения.
Просто включите исходный файл lunr.js на страницу, которую вы хотите использовать. Lunr.js поддерживается во всех современных браузерах.
В качестве альтернативы также доступен пакет npm npm install lunr
.
Браузерам, которые не поддерживают ES5, для работы Lunr потребуется оболочка JavaScript. Вы можете использовать Augment.js, ES5-Shim или любую библиотеку, которая исправляет старые браузеры, чтобы обеспечить среду JavaScript, совместимую с ES5.
См. файл CONTRIBUTING.md
.