Repolode
MihaiValentin

MihaiValentin/lunr-languages

为 Lunr.js 提供多语言分词、词干提取和停用词支持,可在浏览器或 Node.js 中做全文搜索。

Star
459
Fork
168
未关闭 Issue
16
最近提交
昨天

这是什么?

Lunr Languages 是 Lunr.js 的扩展库。Lunr.js 是一个运行在客户端的全文搜索库,本项目为它补充了各语言的分词、词干提取和停用词过滤,让基于 Lunr 构建的索引能够正确匹配不同词形。已支持的语言包括德语、法语、西班牙语、俄语、日语、阿拉伯语、印地语等数十种。

每种语言以独立模块的形式注册到 Lunr 中,多语言模式则允许同一个索引混合多种语言。中文默认使用 Intl.Segmenter 配合 CJK 二元组分词,在 Node.js 中安装 @node-rs/jieba 后可切换为结巴分词。项目提供类型声明,同时支持 CommonJS 和 ES Module 引入方式。

由于完全在浏览器或 Node.js 中运行,它适合静态网站与文档搜索、离线应用,也可以在向量检索或重排序之前作为关键词预筛选层使用。

核心功能

  • 01为数十种语言提供分词、词干提取和停用词表
  • 02多语言模式,可在同一索引中混合多种语言内容
  • 03中文分词基于 Intl.Segmenter,Node.js 中可选用结巴分词
  • 04西班牙语可选的变音符号归一化管道函数
  • 05提供 TypeScript 类型声明,支持 CommonJS 与 ES Module 引入

适用场景

  • 为多语言静态网站或文档站点添加浏览器端搜索
  • 在浏览器中构建离线或本地知识库搜索
  • 在 RAG 流程中,于向量化或重排序前先用关键词做预筛选

快速上手

  1. 1

    从 npm 安装该包

    npm install lunr-languages
  2. 2

    在 Node.js 中加载 Lunr 和德语模块

    const lunr = require('lunr'); require('lunr-languages/lunr.stemmer.support')(lunr); require('lunr-languages/lunr.de')(lunr);
  3. 3

    使用德语流水线创建索引并添加文档

使用前须知

  • 未安装可选包时,中文分词使用二元组,精度低于 Jieba。
  • 浏览器中的中文支持需要 Intl.Segmenter,且没有备用方案。

收录于专题

标签

常见问题

lunr-languages 是什么?
为 Lunr.js 提供多语言分词、词干提取和停用词支持,可在浏览器或 Node.js 中做全文搜索。 Lunr Languages 是 Lunr.js 的扩展库。Lunr.js 是一个运行在客户端的全文搜索库,本项目为它补充了各语言的分词、词干提取和停用词过滤,让基于 Lunr 构建的索引能够正确匹配不同词形。已支持的语言包括德语、法语、西班牙语、俄语、日语、阿拉伯语、印地语等数十种。
lunr-languages 可以免费使用吗?用的什么许可证?
lunr-languages 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
lunr-languages 还在维护吗?
活跃维护中。lunr-languages 最近一次提交是在 2026年11月6日。
lunr-languages 适合用来做什么?
为多语言静态网站或文档站点添加浏览器端搜索 在浏览器中构建离线或本地知识库搜索 在 RAG 流程中,于向量化或重排序前先用关键词做预筛选
lunr-languages 怎么安装和运行?
从 npm 安装该包: npm install lunr-languages 在 Node.js 中加载 Lunr 和德语模块: const lunr = require('lunr'); require('lunr-languages/lunr.stemmer.support')(lunr); require('lunr-languages/lunr.de')(lunr); 使用德语流水线创建索引并添加文档
在哪里获取 lunr-languages?
源代码和安装说明在 GitHub 上:https://github.com/MihaiValentin/lunr-languages

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目