Flaurm实现中文搜索

目录

    • 摘要
    • 需求
    • 本文涉及环境情况如下
    • 解决方案
    • 最终效果
    • 文章其他链接:

摘要

  Flarum本身对中文支持并不理想,但随着版本更新,逐渐加强了对中文的优化。然而在1.8.5版本,却还是不支持中文搜索网站文章内容。作者在检索了全网教程,对于Flarum支持中文搜索的教程都很复杂。本人比较怕麻烦,再加上数据才迁移到新的服务器上,生怕再出问题,故需要一个简单、稳定的方法,就有了这篇文章。

警告
此方法会在一定程度上影响数据库性能,请明确需求后再进行操作。

需求

让Flarum搜索框,支持搜索中文,方法简单、稳定,实现效果如下:
image-20240210231853277

本文涉及环境情况如下

序号环境名称版本
1Flarum1.8.5
2MYSQL8.2.0

解决方案

警告
本文涉及部分危险操作,有可能会造成数据丢失,请在开始操作前,备份数据库及重要文件!

1.对ngram_token_size进行设置。打开MySQL配置文件mysql.cnf,加入如下内容

[mysqld]
ngram_token_size=2

image-20240211001012211

此步操作详细解释参考下面内容

ngram_token_size进行设置的详情解释。
具体来说:

  • ngram_token_size 是一个配置参数,用于指定 Ngram 全文索引的 token 大小。Ngram 是一种文本分析方法,它将文本分割成一系列的 n-gram(即长度为 n 的字符串序列)。在全文索引中,这种方法特别适用于处理像中文或日文这样的语言,因为这些语言不像英文那样使用空格分隔单词。
  • =2 表明了 ngram 的长度被设置为 2。这意味着系统将在创建全文索引时,将文本分割成长度为 2 个字符的序列。例如,对于中文文本,“中华人民”将被分割为“中华”、“华人”、“人民”这样的序列。

这个设置对于处理中文、日文等语言的全文搜索特别有用,因为它允许数据库更有效地索引和搜索这些语言的文本内容。通过将 ngram_token_size 设置为 2,MySQL 能够更好地理解和索引这些语言的结构,从而提高搜索的准确性和效率。

2.重启MySQL生效配置

3.删除原索引文件

# 如有前缀直接复制本段 0,若没有前缀,请去除flarum_
ALTER TABLE flarum_posts DROP INDEX content;
ALTER TABLE flarum_discussions DROP INDEX title;

image-20240210234951790

  如果出现报错1091 - Can't DROP 'title'; check that column/key exists,原因主要做如下

  • 不存在索引或列
  • 索引或列名有误
  • 权限问题
  • 服务器问题

4.重建新的索引文件

(1)文章内容索引创建

# 如有前缀直接复制本段 0,若没有前缀,请去除flarum_
SELECT * FROM `flarum_posts`;	
CREATE FULLTEXT INDEX content ON flarum_posts (content) WITH PARSER ngram; 

image-20240210235636770
(2)讨论内容索引创建

# 如有前缀直接复制本段 0,若没有前缀,请去除flarum_
SELECT * FROM `flarum_discussions`;	
CREATE FULLTEXT INDEX title ON flarum_discussions (title) WITH PARSER ngram; 

执行截图如下
image-20240210234412389

提示:
SELECT * FROM可以省略

最终效果

image-20240211000342376

文章其他链接:

  • 个人博客:https://www.draper-crypto.top/use/u0003/
  • FORESEESTUDIO论坛:https://foreseestudioblog.top/d/44

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/257120.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis中的XML实现和动态SQL实现

文章目录 一、XML实现1.1增1.2删1.3查1.4改 二、XML方式实现动态SQL2.1if标签2.2trim标签2.3where标签2.4set标签2.5foreach标签2.6include标签和sql标签 一、XML实现 先在新建的XML文件中写入如下内容&#xff1a; <?xml version"1.0" encoding"UTF-8&qu…

腾讯云4核8G服务器能支持多少人访问?

腾讯云4核8G服务器支持多少人在线访问&#xff1f;支持25人同时访问。实际上程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#xff0c;假设公网带宽太小&#xff0c;流量直接卡在入口&#xff0c;4核8G配置的CPU内存也会造成计算…

[论文总结] 深度学习在农业领域应用论文笔记12

文章目录 1. 3D-ZeF: A 3D Zebrafish Tracking Benchmark Dataset (CVPR, 2020)摘要背景相关研究所提出的数据集方法和结果个人总结 2. Automated flower classification over a large number of classes (Computer Vision, Graphics & Image Processing, 2008)摘要背景分割…

高中数学:不等式

一、性质 1、同向可加性 2、同向同正可乘 3、正数乘方开方&#xff08;n∈Z&#xff0c;n≥2&#xff09; 常见题型 1、比较大小 分式比较大小&#xff0c;先去分母作差法比较大小带根号的无理数比较大小&#xff0c;直接两边开方因式分解&#xff08;较难&#xff09; 2、…

Matplotlib Figure与Axes速成:核心技能一网打尽

Matplotlib Figure与Axes速成&#xff1a;核心技能一网打尽 &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333; 一、Figure&#xff08;图形&#xff09;&#x1f333;&#x1f341;1. 创建Figure&#x1f341;&#x1f341;2. 添加Axes&#…

配备Apple T2 安全芯片的 Mac 机型及T2芯片mac电脑U盘装系统教程

T2 芯片为 Mac 提供了一系列功能&#xff0c;例如加密储存和安全启动功能、增强的图像信号处理功能&#xff0c;以及适用于触控 ID 数据的安全保护功能。哪些电脑配备了 T2 安全芯片呢&#xff0c;T2芯片mac电脑又如何重装系统呢&#xff1f;跟随小编一起来看看吧&#xff01; …

陪护系统|陪护小程序提升长者护理服务质量的关键

在如今逐渐老龄化的社会中&#xff0c;老年人对更好的护理服务需求不断增加。科技的进步使得陪护小程序系统源码成为提供优质服务的重要途径之一。本文将从运营角度探讨如何优化陪护小程序系统源码&#xff0c;提升长者护理服务的质量。 首先&#xff0c;我们需要对软件的设计和…

scIMC:scRNA-seq插补方法基准

在scRNA-seq中一个主要的挑战即为“dropout”事件&#xff0c;它扭曲了基因表达&#xff0c;显著影响了单细胞转录组的下游分析。为了解决这个问题&#xff0c;已经做了很多努力&#xff0c;并开发了几种基于模型和基于深度学习的scRNA-seq插补方法。但是&#xff0c;目前还缺乏…

ES6 ~ ES11 学习笔记

课程地址 ES6 let let 不能重复声明变量&#xff08;var 可以&#xff09; let a; let b, c, d; let e 100; let f 521, g "atguigu", h [];let 具有块级作用域&#xff0c;内层变量外层无法访问 let 不存在变量提升&#xff08;运行前收集变量和函数&#…

Python爬虫之Ajax数据爬取基本原理

前言 有时候我们在用 requests 抓取页面的时候&#xff0c;得到的结果可能和在浏览器中看到的不一样&#xff1a;在浏览器中可以看到正常显示的页面数据&#xff0c;但是使用 requests 得到的结果并没有。这是因为 requests 获取的都是原始的 HTML 文档&#xff0c;而浏览器中…

【数据结构】哈希桶封装出map和set

利用之前的哈希桶封装出unordered_map和unordered_set。 这个封装并不简单&#xff0c;迭代器的使用&#xff0c;模板参数的繁多&#xff0c;需要我们一层一层封装。 map是一个k - v类型&#xff0c;set是k类型&#xff0c;那么就明确了如果需要封装&#xff0c;底层的tables…

pm2启动的node项目访问不了,npm start却可以访问

netstat -ntlp输入该命令&#xff0c;查看启动的服务端口是否有被监听到&#xff0c;如3001&#xff0c;4000之类的&#xff0c;是node项目启动时候自己配的那个&#xff0c; 若没有&#xff0c;则执行 pm2 delete [app-id/app-name] 先删除启动的这个项目 例如pm2 delete my…

LeetCode Python - 15.三数之和

目录 题目答案运行结果 题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可…

C语言—字符数组(3)

可能不是那么的完整&#xff0c;先凑合看吧&#xff0c;如果我学会如何修改以后&#xff0c;我慢慢回来修改的 1.编写程序实现对两个字符串的连接功能&#xff1b; 法一:不使用strcat函数,写程序直接实现&#xff0c;记得添加结束符&#xff0c;不然程序访问数组时候将变得不…

ZooKeeper安装及配置(Windows版)

步骤&#xff1a; 1.官网下载二进制版本ZooKeeper安装包。 2.解压到你要安装的目录下 3.配置 3.1进入目录 D:\Install\apache-zookeeper-3.9.1-bin 新增两个文件夹&#xff1a;data和log 3.2 进入目录D:\Install\apache-zookeeper-3.9.1-bin\conf 复制zoo_sample.cfg文件&a…

python中库的安装和卸载

1 安装库的基本方法 pip install 库名 2 批量下载(pa.txt放入库的名称和版本要求&#xff09;格式如图所示&#xff1a; pip install -r pa.txt 3 官网下载安装库 https://pypi.org/project/ 搜索后点击Download files python -m pip install C:\Users\ZHUHUA\Downloads\…

elasticsearch下载及可视化工具下载使用

elasticsearch下载及配置、启动 一、下载 Download Elasticsearch | Elastic 二、启动 双击bat即可。 出现如下说明启动成功&#xff1a; 访问测试&#xff1a; 三、注意 &#xff08;1&#xff09;因为es启动默认端口是&#xff1a;9200,所以需要检查此端口是否被占用。…

M3芯片支持追光效果吗?苹果电脑上值得玩的游戏大作有什么? Mac电脑热门游戏推荐 苹果电脑玩幻兽帕鲁 crossover软件安装

M3是苹果最新发布的芯片&#xff0c;它采用了业界领先的3纳米工艺&#xff0c;能够提供更快的速度和更高的能效。苹果电脑是一种高端的个人电脑&#xff0c;它也有着不少优秀的游戏大作&#xff0c;能够给玩家带来不同的游戏体验。那么&#xff0c;M3支持追光效果吗&#xff1f…

【Linux】指令提权-sudo

Hello everybody&#xff0c;新年快乐&#xff01;哈哈&#xff01;今天打算给大家讲讲指令提权的相关知识&#xff0c;虽然内容不多&#xff0c;但有时却很有用。在我们学习过权限&#xff0c;vim后就可以学习指令提权啦&#xff0c;没看过的宝子们建议先去看一看我之前的文章…

单片机学习笔记---DS18B20温度读取

目录 OneWire.c 模拟初始化的时序 模拟发送一位的时序 模拟接收一位的时序 模拟发送一个字节的时序 模拟接收一个字节的时序 OneWire.h DS18B20.c DS18B20数据帧 模拟温度变换的数据帧 模拟温度读取的数据帧 DS18B20.h main.c 上一篇讲了DS18B20温度传感器的工作原…