一個(gè)輕量級(jí) JavaScript 全文搜索庫(kù),輕松實(shí)現(xiàn)站內(nèi)離線搜索
介紹
Lunr.js是個(gè)用于瀏覽器的輕量級(jí) JavaScript 全文搜索引擎。它為JSON文檔建立索引,并提供一個(gè)簡(jiǎn)單的搜索界面來(lái)檢索與文本查詢比較匹配的文檔對(duì)于一些小型的博客、開發(fā)者文檔或 Wiki 網(wǎng)站來(lái)說(shuō),完全可以通過(guò)它實(shí)現(xiàn)站內(nèi)離線搜索:
為什么使用它?
對(duì)于已經(jīng)將所有數(shù)據(jù)存儲(chǔ)在客戶端中的Web應(yīng)用程序,也能夠在客戶端上搜索該數(shù)據(jù)也是很有意義的。這樣可以節(jié)省在服務(wù)器上添加額外的壓縮服務(wù)。本地搜索索引將更快,沒(méi)有網(wǎng)絡(luò)開銷,并且即使沒(méi)有網(wǎng)絡(luò)連接也將保持可用。
Github
目前Github上star數(shù)6.6k
- https://github.com/olivernn/lunr.js
簡(jiǎn)單示例
- 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")
這將返回一個(gè)匹配文檔列表,其中包含與搜索查詢的匹配程度以及與該匹配相關(guān)的任何關(guān)聯(lián)元數(shù)據(jù)的分?jǐn)?shù):
- [
- {
- "ref": "1",
- "score": 0.3535533905932737,
- "matchData": {
- "metadata": {
- "love": {
- "body": {}
- }
- }
- }
- }
- ]
安裝
只需在要使用它的頁(yè)面中包含lunr.js源文件。所有現(xiàn)代瀏覽器均支持Lunr.js。
- npm install lunr
特性
(翻譯或不夠準(zhǔn)確)
- 全文搜索支持14種語(yǔ)言
- 在查詢時(shí)提升術(shù)語(yǔ)或在索引時(shí)提升整個(gè)文檔
- 范圍搜索到特定字段
- 模糊術(shù)語(yǔ)與通配符匹配或編輯距離
總結(jié)
在之前的文章中介紹過(guò)另一個(gè)全文搜索庫(kù)FlexSearch.js,感興趣的小伙伴也可以去看一看介紹,在這里也提前祝大家工作順利,萬(wàn)事如意,身體健康!





























