一个轻量级 JavaScript 全文搜索库,轻松实现站内离线搜索

825次阅读  |  发布于4年以前

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

特性

(翻译或不够准确)

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8