搜索中心 v1.3.0
搜索中心增加功能,重建统一入口
2024-01-12 更新日志
  • 新增:搜索中心新增检索existsBizIdAndNotUrl方法
  • 新增:搜索中心内容索引重建统一入口,安装 SuperSearch 模块
搜索中心

模块介绍

「搜索中心」是一个提供全站通用的内容搜索中心

使用说明

搜索中心提供了为网站提供了一个通用搜索的功能,使用时,其他模块将可搜索的内容主动推送到本模块,可以实现全站搜索的功能。

功能列表
    多模块支持
    搜索引擎
        MySQL(默认)
        ElasticSearch(安装 SuperSearchES 模块)
        其他(待支持)

如何使用

① 在模块中继承并实现实现 SearchCenterBiz

use \Module\SearchCenter\Biz\SearchCenterBiz;
use \Module\SearchCenter\Biz\AbstractSearchCenterBiz;

class XxxSearchCenterBiz extends AbstractSearchCenterBiz
{
    const NAME = 'xxx';

    public function name()
    {
        return self::NAME;
    }

    public function title()
    {
        return '模块需要搜索的内容';
    }

    public function syncBatch($nextId)
    {
        $batch = ModelUtil::batch('xxx', $nextId, 10);
        $batch['records'] = array_map(function ($o) {
            return [
                'biz' => self::NAME,
                'bizId' => $o['id'],
                'url' => modstart_web_url('xxx/' . $o['id']),
                'title' => $o['title'],
                'content' => $o['content'],
                'keywords' => [],
            ];
        }, $batch['records']);
        return $batch;
    }
}

② 注册搜索中心业务

<?php
class ModuleServiceProvider extends ServiceProvider
{
    // ...
    public function boot(Dispatcher $events)
    {
        // 注册搜索中心业务
        SearchCenterBiz::register(XxxSearchCenterBiz::class);
    }
    // ...
}

③ 同步搜索内容到搜索中心

可以通过后台手动同步:

后台 → 内容管理 → 索引构建(右上角)→ 全量同步。

也可以在模块开发过程中,在数据变动的地方通过代码自动同步:

use \Module\SearchCenter\Biz\SearchCenterBiz;
// 增加/更新内容
SearchCenterBiz::update('xxx',1,'/xxx/1','标题','内容',['关键词','关键词']);
// 删除内容
SearchCenterBiz::delete('xxx',1);

④ 在搜索界面搜索结果

访问 /search_center 界面,输入关键词搜索。

默认情况下会搜索同步的 title、content、keywords 字段。

后台菜单

  • 内容管理
  • 内容管理搜索中心
QQ
微信
客服