Flaurm实现中文搜索

news2024/11/27 20:58:38

目录

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

摘要

  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.coloradmin.cn/o/1448580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive on Spark配置

前提条件 1、安装好Hive,参考:Hive安装部署-CSDN博客 2、下载好Spark安装包,链接:https://pan.baidu.com/s/1plIBKPUAv79WJxBSbdPODw?pwd6666 3、将Spark安装包通过xftp上传到/opt/software 安装部署Spark 1、解压spark-3.3…

【Typora】markdown神器之Typora无限使用安装与基本操作教程

🌼一、概述 Typora是一款轻量级的Markdown编辑器,它提供了简洁的界面和直观的操作方式,专注于让用户更加专注于写作。Typora支持实时预览功能,用户在编辑Markdown文档时可以即时看到最终的样式效果,这有助于提高写作效…

基于CU,PO,RD,IPO矩阵图分析数据资产-自创

术语 数据资产:数据资产是具有价值的数据资源。没有价值的数据资源,通过采集,整理,汇总等加工后,也可以成为具有直接或间接价值的数据资产。传统企业逐渐数字化转型,尤其是互联网企业,都十分重视…

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

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

猫头虎分享已解决Bug || TypeError: Cannot read property ‘length‘ of undefined ‍

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

黑马Java——集合进阶(不可变集合、Stream流、方法引用)

目录 一、不可变集合 1、创建不可变集合的应用场景 2、创建不可变集合的书写格式 2.1、不可变的List集合 2.2、不可变的Set集合 2.3、不可变的Map集合 3、小结 二、Stream流 1、体验Stream流的作用 2、Stream流的思想 3、Stream流的使用步骤 3.1、单列集合获取Strea…

1232.缀点成线(Java)

题目描述: 给定一个数组 coordinates ,其中 coordinates[i] [x, y] , [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。 输入: coordinates [[1,2],[2,3],[3,4],[4,5]…

[计算机提升] 备份系统:设置备份

6.5 备份系统:设置备份 1、进入到控制面板系统和安全\备份和还原,点击右侧的设置备份: 2、在弹出的设置备份对话框中,选择要保存的位置,点击下一步开始备份。 3、选择要备份的内容。根据需要选择即可。这种备份的…

Linux_动静态库

动态库 静态库 刚开始学编程时,需要下载一个环境(vs2019),这个环境包括编译器和标准库,标准头文件。那么什么是库呢,库和头文件有什么关系呢? 头文件里面放的函数声明,库文件里面放…

MacOS - M1芯片 Mac 在“恢复”模式中启用系统扩展教程

部分软件需要开启系统扩展才能正常使用,但是默然M1芯片的Mac不能直接打开系统扩展,如下两图。 若要启用系统扩展,您需要在“恢复”环境中修改安全性设置。 若要执行此操作,请将系统关机,然后按住触控ID或电源按钮以开…

中国判决生效,诺基亚全面与中国手机签署授权协议,降低专利费

日前媒体报道指诺基亚与中国两家手机企业都签署了专利授权协议,全面结束诉讼,而这一切正是在OPPO于去年底在重庆法院就OPPO与诺基亚的专利费诉讼问题,做出裁决之后,要求诺基亚按公平、公正等合理收费原则收取专利费。 这几年诺基亚…

猫头虎分享已解决Bug || ImportError: cannot import name ‘relu‘ from ‘keras.layers‘

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

无人机飞行控制系统功能,多旋翼飞行控制系统概述

飞行控制系统存在的意义 行控制系统通过高效的控制算法内核,能够精准地感应并计算出飞行器的飞行姿态等数据,再通过主控制单元实现精准定位悬停和自主平稳飞行。 在没有飞行控制系统的情况下,有很多的专业飞手经过长期艰苦的练习&#xff0…

Git基础命令,分支,标签的使用【快速入门Git】

Git基础命令,分支,标签的使用【快速入门Git】 Git基础常用命令Git工作流程工作区,暂存区和版本库文件状态获取Git仓库 git init | git clone查看文件状态 git status暂存已修改的文件 git add 查看已暂存和未暂存的修改 git diff提交文件更改…

【光学】学习记录1-几何光学的近轴理论

课程来源:b站资源-光学-中科大-崔宏滨老师(感谢),本系列仅为自学笔记 【光学 中科大 崔宏滨老师 1080p高清修复(全集)】https://www.bilibili.com/video/BV1NG4y1C7T9?p2&vd_source7ba37b2cff2a1b783…

用Python探秘2024年春晚刘谦魔术:两步揭开神秘面纱

在2024年的春晚舞台上,刘谦的魔术表演再次引发了全国观众的热议。他的每一个动作、每一次变换都充满了神秘与未知,让人在惊叹的同时也好奇其背后的秘密。今天,我们将用Python来模拟实现刘谦的一个魔术,并尝试通过两步揭秘其背后的…

探讨java系统中全局唯一ID实现方案

为什么需要全局唯一ID 我们这里引用美团 Leaf 的场景介绍:在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据分库分表后需要有一…

Hive3.1.2——企业级调优

前言 本篇文章主要整理hive-3.1.2版本的企业调优经验,有误请指出~ 一、性能评估和优化 1.1 Explain查询计划 使用explain命令可以分析查询计划,查看计划中的资源消耗情况,定位潜在的性能问题,并进行相应的优化。 explain执行计划…

C# EventHandler<T> 示例

新建一个form程序,在调试窗口输出执行过程; 为了使用Debug.WriteLine,添加 using System.Diagnostics; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using S…

【Qt】qt常用控件之QIcon 以及 qrc机制设置图片路径(QtCreator)

文章目录 1. QIcon / windowIcon2. setIcon() 与 setwindowIcon()2.1 setIcon() 介绍与使用2.2 setWindowIcon 介绍与使用 3. 路径问题 & qrc机制的引入3.1 绝对路径 / 相对路径 的问题3.2 qrc机制3.3 在QtCreator下利用qrc机制引入图片 1. QIcon / windowIcon QIcon QIco…