一個輕量級 JavaScript 全文搜索庫,輕鬆實現站內離線搜索

2020-01-23     最美分享Coder


介紹

Lunr.js是個用於瀏覽器的輕量級 JavaScript 全文搜尋引擎。它為JSON文檔建立索引,並提供一個簡單的搜索介面來檢索與文本查詢最匹配的文檔對於一些小型的博客、開發者文檔或 Wiki 網站來說,完全可以通過它實現站內離線搜索:






為什麼使用它?

對於已經將所有數據存儲在客戶端中的Web應用程式,也能夠在客戶端上搜索該數據也是很有意義的。這樣可以節省在伺服器上添加額外的壓縮服務。本地搜索索引將更快,沒有網絡開銷,並且即使沒有網絡連接也將保持可用。

Github

目前Github上star數6.6k

https://github.com/olivernn/lunr.js

簡單示例

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": {}        }      }    }  }]

安裝

只需在要使用它的頁面中包含lunr.js源文件。所有現代瀏覽器均支持Lunr.js。

npm install lunr

特性

(翻譯或不夠準確)

  • 全文搜索支持14種語言
  • 在查詢時提升術語或在索引時提升整個文檔
  • 範圍搜索到特定欄位
  • 模糊術語與通配符匹配或編輯距離

總結

在之前的文章中介紹過另一個全文搜索庫FlexSearch.js,感興趣的小夥伴也可以去看一看介紹,在這裡也提前祝大家新年快樂,萬事如意,身體健康!

文章來源: https://twgreatdaily.com/zh-tw/Z1Yg6W8BjYh_GJGV5MTv.html