Raneto中文搜索支持

2023-11-02

背景

因业务部门需要在线软件使用说明文档,但我们资源不足,故我想找一个开源的知识库,发现 Raneto不错,决定使用。
官方文档相当清晰,部署完成,发布一些文章,启动项目,交由业务同事测试使用,于是我收到 中文搜索 不支持反馈。查看其配置文件

example/config.default.js 
// Support search with extra languages
searchExtraLanguages: ['ru'],在 `Raneto/node_modules/lunr-languages/`列表下并没有 `lunr.zh.js` 中文搜索支持文件,故此路不通。那就谷歌解决此问题了。

环境

Centos
Raneto 0.16.2

需求

二次开发 Raneto 中文搜索支持

解决

  • 重命名 lunr 文件夹

cd Raneto
mv  ./node_modules/lunr  node_modules/lunr_official
  • 下载 https://github.com/codepiano/lunr.js 文件夹并重命名为lunr

cd  Raneto/node_modules
git clone https://github.com/codepiano/lunr.js && mv lunr.js lunr
  • 修改 Raneto/app/core/search.js 文件

1.复制该文件到 Raneto/app/core/目录里

cp  Raneto/node_modules/lunr/lunr.js  Raneto/app/core/

2.直接引用其 https://github.com/codepiano/lunr.js 的 lunr.js 文件,也就是Raneto/app/core/lunr.js,另外,注释其语言加载配置。

function getLunr (config) {
  if (instance === null) {
    // instance = require('lunr');
    instance = require('./lunr.js');
    // require('lunr-languages/lunr.stemmer.support')(instance);
    // require('lunr-languages/lunr.multi')(instance);
    // config.searchExtraLanguages.forEach(lang =>
    // require('lunr-languages/lunr.' + lang)(instance)
    // );
  }
  return instance;

3.注释默认设置加载的lunr配置

function handler (query, config) {
  const contentDir = utils.normalizeDir(path.normalize(config.content_dir));
  const documents = glob
    .sync(contentDir + '**/*.md')
    .map(filePath => contentProcessors.extractDocument(
      contentDir, filePath, config.debug
    ))
    .filter(doc => doc !== null);

  const lunrInstance = getLunr(config);
  const idx = lunrInstance(function () {
    // 注释默认设置加载的lunr配置
    // this.use(getStemmers(config));
    this.field('title');
    this.field('body');
    this.ref('id');
    documents.forEach((doc) => this.add(doc), this);
  });
  • 安装 nodejieba模块

npm install --save nodejieba

最后再次启动,支持中文搜索了

cd Raneto
npm start

引用

Raneto配置中文搜索|无声又无息

转载于:https://www.cnblogs.com/itwo/p/d5dae01f67051194bc4e83e3abb3c52f.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Raneto中文搜索支持 的相关文章

  • 【ML on Kubernetes】第 1 章:机器学习的挑战

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • aps是什么意思_aps画幅是什么意思

    APS的原意是指 高级摄影系统 Advanced Photo System 是数码相机普及前的一种过渡产品 它仍使用胶卷 但在胶卷和暗盒上通过磁性材料和数字计划 记录了很多相关数据 还有一个特点就是APS允许用户随时在三种画幅格式切换 它们
  • 特征融合方法

    概述 基本概念 在很多工作中 融合不同尺度的特征是提高分割性能的一个重要手段 低层特征分辨率更高 包含更多位置 细节信息 但是由于经过的卷积更少 其语义性更低 噪声更多 高层特征具有更强的语义信息 但是分辨率很低 对细节的感知能力较差 如何
  • MyBatis PostgreSQL实现数组类型的操作

    我的GitHub Powerveil GitHub 我的Gitee Powercs12 powercs12 Gitee com 皮卡丘每天学Java 最近在学习数据库PostgreSQL 遇到如何实现对数组类型的数据操作 试着自己尝试学习实
  • UE5关于高亮显示物体轮廓线

    描边材质如果是透明的话 不会显示描边 材质参数勾选 允许自定义深度写入 即可 材质参考这个文章 https blog csdn net Axiang 0123 article details 121168272 ops request mi
  • 多标签分类怎么做?教你4招

    首先简单介绍下 多标签分类与多分类 多任务学习的关系 多分类学习 Multi class 分类器去划分的类别是多个的 但对于每一个样本只能有一个类别 类别间是互斥的 例如 分类器判断这只动物是猫 狗 猪 每个样本只能有一种类别 就是一个三分
  • iview表格单元格动态绑定class/style,不刷新表格本身.

    对订单表格的时间列 动态检验时间是否过期并用颜色标记 关键点是在render中的渲染函数动态绑定class style 小问题是表格数据本身是确定的不再变化 我们又需要跟随时间变化 所以首选需要一个定时器 定时器不能放在表格里会导致计时器不
  • 我的第一个小爬虫程序-python

    爬什么 爬代理服务器网站的服务器 端口 代理种类 所在地区 更新日期 今日评分 总的评分 可用 速度测评信息 这样的网页有七八个 好在网址明名很规则 具体说就是爬很多的这样的html代码里的信息 span class tbBottomLin
  • 【论文】AMC:AutoML用于移动设备上的模型压缩和加速

    摘要 模型压缩是在计算资源有限且功率预算紧张的移动设备上高效部署神经网络模型的有效技术 传统的模型压缩技术依赖于手工制作的特性 需要领域专家在模型大小 速度和精度之间进行权衡 以探索大的设计空间 这通常是次优和耗时的 在本文中 我们提出了用
  • 不想安装环境,我如何与前端工程师远程协作开发?

    最近我的一名前端工程师朋友Wendy正基于自己的想法开发一个开源项目 为了让用户了解并试用项目 她准备用Nextjs这个前端框架搭建一个用户使用手册网站 写文档的时候 她想到了我这个产品经理朋友 希望我能够帮助她一起开发这个网站 提供更好的
  • 【Qt/C++异常笔记】“QHostInfo”: 不是类或命名空间名称

    文章目录 异常描述 异常原因 解决方法 开发环境 异常描述 在读取主机名称时 需要用到 QHostInfo localHostName 但是使用了之后一直报错 QHostInfo 不是类或命名空间名称 头文件中引用 include
  • 《数据结构与算法》实验:图结构的建立与搜索

    数据结构与算法 实验和课程Github资源 数据结构与算法 实验 线性结构及其应用 算术表达式求值 数据结构与算法 实验 树型结构的建立与遍历 数据结构与算法 实验 图结构的建立与搜索 数据结构与算法 实验 查找结构的实验比较 二叉查找树B
  • 图的m着色问题(第十二次实验)

    图的m着色问题 问题 图的m着色问题 给定无向连通图G和m种颜色 用这些颜色给图的顶点着色 每个顶点一种颜色 如果要求G的每条边的两个顶点着不同颜色 给出所有可能的着色方案 如果不存在 则回答 NO 解析 图着色问题描述为 给定无向连通图G
  • Qt开发之QTableWidget

    QTableWidget从继承QTableView 实质属于模型 视图范畴之内 只是带了默认模型 model 基于项目 item 的表格视图控件 我们不需要实现model内的数据加工 QTableWidget为应用程序提供了标准的表显示工具
  • 【MybBatis高级篇】MyBatis 拦截器

    MybBatis高级篇 MyBatis 拦截器 拦截器介绍 实现拦截器 注册拦截器 应用 yml DynamicSql Dao 层代码 xml 启动类 拦截器核心代码 代码测试 拦截器应用场景 MyBatis 是一个流行的 Java 持久层
  • python数据分析与可视化——第二章实训

    1 读取数据 import csv f open F 专业课程作业 python时空数据分析与可视化 white wine csv r 定义读取器 reader csv reader f data 定义列表存储读取的数据 for row i
  • UML 建模步骤 用例图 类图 对象图 包图 顺序图/时序图 状态图 活动图 协作图

    统一建模语言 Unified Modeling Language UML 是一种为面向对象系统的产品进行说明 可视化和编制文档的一种标准语言 是非专利的第三代建模和规约语言 UML是面向对象设计的建模工具 独立于任何具体程序设计语言 1 U
  • C基础day3(2023.7.3)

    一 Xmind整理 二 作业 1 include
  • Ubuntu下muduo库安装和配置到系统环境

    1 本次安装通过源码安装 在安装之前必须要安装git 系统是Ubuntu muduo库源码github仓库地址 https github com chenshuo muduo 2 git 安装 sudo apt get install gi
  • [架构之路-192]-《软考-系统分析师》-8-软件工程 - 14种UML图快速概览

    目录 第1章 UML概述 1 1 什么是UML 1 2 为什么要用UML 1 3 UML图有哪些 1 4 UML图概览 第2章 UML图示 2 1 静态图 结构图 什么是类图 泛化 Generalization 实现 Realization

随机推荐

  • 投资人热捧的创业大赛,有哪些AI原生应用值得关注?

    绝对远超全球同类产品 一位大模型创业者对百度文心一言的表现不吝夸奖 这是一家生产效率工具创业公司的负责人 今年5月百度发起大模型领域创业比赛 文心杯 他率先报名参赛并入选决赛文心创业营 目前与其他30多家入围企业一起 正基于百度文心大模型构
  • linux中init.d文件夹的说明

    一 简单说明 etc init d 是 etc rc d init d 的软链接 soft link 可以通过 ll 命令查看 ls ld etc init d lrwxrwxrwx 1 root root 11 Aug 30 2015 e
  • window.open()的替代方法

    window open 是被很多杀毒软件禁止的弹出框方式 所以可以采用form post的方式来打开 function OpenWindByPost window top location ctx page confirm confirmT
  • File类

    一 概述 1 File在包java io File下 代表系统的文件对象 文件 文件夹 File提供了诸如 定位文件获取文件本身的信息 删除文件 创建文件 文件夹 等功能 File创建对象有三种方法 第一种最为方便 其他两种只要没点大病都不
  • LeetCode 451. Sort Characters By Frequency

    原题网址 https leetcode com problems sort characters by frequency Given a string sort it in decreasing order based on the fr
  • Midjourney API 接口调试

    最近写了一个Midjourney API的接口 可以通过调用接口实现AI绘画 本地服务使用了 Midjourney 最近关注AI比较多 自己实现了一个AI绘画 Midjourney的接口 通过发送关键词就能实现绘画 发现需要的人也挺多的 准
  • JDK8主要新特性介绍(一)

    1 语言新特性1 1接口新增默认方法与静态方法 1 1 1 Interface Default Method For creating a default method in java interface we need to use de
  • DS18B20数字温度传感器

    DS18B20是一种数字温度传感器 由美国达拉斯半导体公司生产 具有以下特征 1 单线传输 DS18B20使用单线传输协议 1 Wire 进行通信 只需要一个数据线就可以实现数据传输和电源供应 2 高精度 DS18B20可以测量范围为 55
  • 五、高级数据结构和算法:2-3查找树、红黑树

    5 2 3查找树 红黑树 5 1 2 3查找树 和二叉树不一样 2 3树每个节点保存1个或者2个的key 对于普通的2节点 2 node 要有1个key和左右两个子节点 对应3节点 3 node 要有两个Key和三个子节点 2 3查找树的定
  • EMC测试(5)——传导发射测试(CE)

    1 1 概念介绍 传导发射 Conducted Emission 测试 简称CE 也被称为传导骚扰 是指系统内部的电压或电流通过信号电缆 电源线或地线传输出去而成为其他系统或设备干扰源的一种电磁现象 传导发射测试通常也会被称为骚扰电压测试
  • C# 多组充电测试框架

    有多个电流电压表通过串口连接到PC 点了对应按钮后 开始计时 到达对应时间后 读取电流电压表 链接 https caiyun 139 com m i 0E5CJYSahvlql 提取码 TDZa 复制内容打开和彩云手机APP 操作更方便哦
  • 小程序使用本地图片设置背景图

    如果在wxml文件中使用本地路径图片作为背景图 在微信开发者工具中可以显示出来 但运行到手机上显示不出来 解决如下 方法一 require 引入 使用 require 引入本地图片 require方式获取的值可以直接生成base64格式 d
  • 栈跟队列

    387 数据结构实验 顺序栈 描述创建一个顺序栈 能够完成栈的初始化 入栈 出栈 获取栈顶元素 销毁栈等操作
  • APT攻击详解

    0x01 APT到底是什么 APT 高级持续威胁 Advanced Persistent Threat 普遍认可的定义是 利用各种先进的攻击手段 对高价值目标进行的有组织 长期持续性网络攻击行为 也就是说很难去确定是不是APT攻击 只能从已
  • L1W2作业1

    1 使用numpy构建基本函数 Numpy是Python中主要的科学计算包 它由一个大型社区维护 在本练习中 你将学习一些关键的numpy函数 例如np exp np log和np reshape 你需要知道如何使用这些函数去完成将来的练习
  • Qt - MQTT客户端调试助手

    Qt MQTT客户端调试助手 Qt5 9 4 MinGW开发 MQTT调试助手 源码和软件下载链接如下 源码地址 https gitee com jhembedded MQTT Client 软件截图 使用说明 软件目录下有一个配置文件co
  • JavaWeb——Tomcat

    tomcat9安装步骤 Apache Tomcat Welcome 下载完 解压文件 测试tomcat是否能正常运行 启动tomca 打开网站输入localhost 8080 关闭tomcat tomca配置的核心文件server 可配置启
  • 高频卡S50和S70标签存储结构了解

    一 存储容量不同 Mifare S70的容量是S50的4倍 S50的容量是1K字节 S70的容量为4K字节 二 应答方式不同 二者应答读写器返回的卡类型 ATQA 字节不同 Mifare S50的卡类型 ATQA 是0004H Mifare
  • 快速创建一个servlet并且在web.xml配置和使用它

    这次 我要来教大家怎么快速创建一个servlet并且在web xml配置和使用它 实际上 现在可以直接在eclipse中创建一个servlet使其继承HttpServlet 而且你还可以对其进行一定的配置 在图中红色的地方写上你的Servl
  • Raneto中文搜索支持

    背景 因业务部门需要在线软件使用说明文档 但我们资源不足 故我想找一个开源的知识库 发现 Raneto不错 决定使用 官方文档相当清晰 部署完成 发布一些文章 启动项目 交由业务同事测试使用 于是我收到 中文搜索 不支持反馈 查看其配置文件