Phabricator 中文搜索实现 - MySQL 全文索引
更新于803 天前公开

从MySQL 5.7.6开始,MySQL 增加了 ngram 分词器 。 ngram 分词器同时支持 InnoDB 和 MyISAM 引擎,对中文有很好的支持。Phabricator 默认是通过 MySQL 全文索引进行搜索。

  1. 首先要把 MySQL 升级到 5.7.6 版本或更新版本。
  1. 添加 MySQL 设置
[mysqld]
ngram_token_size=2
  1. 然后在 MySQL 中运行下面的语句指定 ngram 分词器:
-- 删除旧数据,如果不删除的话,下面的两个索引修改操作可能会非常耗时。
-- 删除的所有,可以通过命令重建。
DELETE FROM search_documentfield; 

ALTER TABLE search_documentfield DROP INDEX key_corpus;
ALTER TABLE search_documentfield ADD INDEX FULLTEXT KEY `key_corpus` (`corpus`,`stemmedCorpus`) WITH PARSER NGRAM;
  1. 重建 Phabricator 索引:
./bin/search index --all

相关链接

T13: 通过 MySQL 实现对中文搜索的支持

最后编辑
tom
项目
订阅用户