Mediawiki 运行 rebuildtextindex.php 使短语搜索只需几分钟

Mediawiki running rebuildtextindex.php made phrase searches take minutes

我继承了生产中的 mediawiki 服务器,该服务器的页面由 python 脚本使用大型数据集自动生成。这个特定的 wiki 上有大约 200 万页。我们注意到一些短语搜索没有出现任何明显应该有的结果。所以我们运行maintenance/rebuildtextindex.php喜欢mediawiki规定的。现在搜索结果正确返回。问题是单词可以很好地搜索,但短语却不行。例如。 "word1 word2" 不带引号 returns 会在几秒钟或更短时间内产生结果,但带引号实际上需要几分钟,浏览器会在最终返回结果之前声明 "waiting for [domain]..."。

我已经尝试调查这个脚本的问题,mediawiki 版本是 1.24,所以我尝试 运行 脚本,有和没有删除搜索索引 table。两者带来相同的结果。

我是 mediawiki 的新手,有足够的 php 知识来理解基本的 php,我对 SQL 没意见,但看不出我遗漏了什么.我怎样才能使短语搜索更快?

Native MediaWiki 使用 MySQL 全文索引,这并不真正适用于数十亿个单词(假设每页一千个单词 "word1 word2" 将转换为具有 10^18 行的 JOIN...) .您可能应该使用为搜索而开发的技术(例如通过 CirrusSearch 扩展的 ElasticSearch)。