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

开发 前端
Lunr.js是个用于浏览器的轻量级 JavaScript 全文搜索引擎。它为JSON文档建立索引,并提供一个简单的搜索界面来检索与文本查询最匹配的文档对于一些小型的博客、开发者文档或 Wiki 网站来说,完全可以通过它实现站内离线搜索。

 介绍

Lunr.js是个用于浏览器的轻量级 JavaScript 全文搜索引擎。它为JSON文档建立索引,并提供一个简单的搜索界面来检索与文本查询比较匹配的文档对于一些小型的博客、开发者文档或 Wiki 网站来说,完全可以通过它实现站内离线搜索:

 

[[329551]]

 

为什么使用它?

对于已经将所有数据存储在客户端中的Web应用程序,也能够在客户端上搜索该数据也是很有意义的。这样可以节省在服务器上添加额外的压缩服务。本地搜索索引将更快,没有网络开销,并且即使没有网络连接也将保持可用。

Github

目前Github上star数6.6k

 

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

简单示例

 

  1. var idx = lunr(function () { 
  2.   this.field('title'
  3.   this.field('body'
  4.  
  5.   this.add({ 
  6.     "title""Twelfth-Night"
  7.     "body""If music be the food of love, play on: Give me excess of it…"
  8.     "author""William Shakespeare"
  9.     "id""1" 
  10.   }) 
  11. }) 

然后再像下面这样

 

  1. idx.search("love"

这将返回一个匹配文档列表,其中包含与搜索查询的匹配程度以及与该匹配相关的任何关联元数据的分数:

 

  1.   { 
  2.     "ref""1"
  3.     "score": 0.3535533905932737, 
  4.     "matchData": { 
  5.       "metadata": { 
  6.         "love": { 
  7.           "body": {} 
  8.         } 
  9.       } 
  10.     } 
  11.   } 

安装

只需在要使用它的页面中包含lunr.js源文件。所有现代浏览器均支持Lunr.js。

 

  1. npm install lunr 

特性

(翻译或不够准确)

  • 全文搜索支持14种语言
  • 在查询时提升术语或在索引时提升整个文档
  • 范围搜索到特定字段
  • 模糊术语与通配符匹配或编辑距离

总结

在之前的文章中介绍过另一个全文搜索库FlexSearch.js,感兴趣的小伙伴也可以去看一看介绍,在这里也提前祝大家工作顺利,万事如意,身体健康!

 

责任编辑:华轩 来源: 后端开发者社区
相关推荐

2020-12-31 09:20:51

Redis搜索引擎

2020-12-10 11:18:47

Redis搜索引擎Java

2009-06-23 08:56:55

Linux桌面搜索

2022-07-15 16:39:19

PythonWhoosh工具

2015-04-03 11:23:11

JavaScript全文搜索相关度评分

2009-02-25 13:59:57

布尔全文搜索全文搜索内置函数

2019-12-13 19:00:26

PekwmLinux桌面

2009-02-25 13:41:49

全文搜索内置函数MySQL

2018-08-22 14:25:42

搜索LuceneQuery

2022-08-31 12:48:48

TinyDBPython数据库

2021-09-13 06:03:42

CSS 技巧搜索引擎

2020-08-27 11:39:05

JavaRESTful Web编程语言

2021-08-09 10:36:49

Python搜索引擎命令

2022-05-30 07:31:38

SpringBoot搜索技巧

2022-03-22 15:20:32

微信全文搜索

2019-08-28 17:12:43

数据系统搜索引擎

2024-03-26 08:33:48

工具软件WPFUI库WPF应用

2022-06-06 22:23:26

Tina工具Markdown

2021-10-27 11:29:32

框架Web开发

2023-06-28 08:16:50

Autofac应用程序
点赞
收藏

51CTO技术栈公众号