flarum修改支持中文搜索
第一步
在 /vendor/flarum/core/src/Core/Search/Discussion/Fulltext
文件夹新建文件 MySqlFulltextLikeModeDriver.php
内容为:
<?php
/*
* 添加 Flarum 对中文搜索的支持
*
* Flarum 的搜索默认使用了 MySQL 的全文检索。
* 但是 MySQL 的全文检索功能默认不支持中文。
* 本方案把 Flarum 的搜索改成了基于 LIKE 语句的 SQL 搜索。
*
* @author justjavac <justjavac@gmail.com>
*/
namespace Flarum\Core\Search\Discussion\Fulltext;
use Flarum\Core\Post;
use Flarum\Core\Discussion;
class MySqlFulltextLikeModeDriver implements DriverInterface
{
/**
* {@inheritdoc}
*/
public function match($string)
{
$discussionTitleIds = Discussion::where('title', 'like', "%$string%")
->lists('id');
$discussionIds = Post::where('type', 'comment')
->where('content', 'like', "%$string%")
->lists('discussion_id', 'id');
$relevantPostIds = [];
foreach ($discussionTitleIds as $discussionId) {
$relevantPostIds[$discussionId][] = 0;
}
foreach ($discussionIds as $postId => $discussionId) {
$relevantPostIds[$discussionId][] = $postId;
}
return $relevantPostIds;
}
}
第二步
修改 ./vendor/flarum/core/src/Core/Search/SearchServiceProvider.php
文件
把第 30 行修改为:
Flarum\Core\Search\Discussion\Fulltext\MySqlFulltextLikeModeDriver
beta 0.7 测试通过,其他版本未测试。
最后修订于 2018-06-03 13:04:07
- 上一篇 明天可以开始内容建设了
- 下一篇 php flarum cache:clear