• 233
    Meilisearch 全文搜索
    ID meilisearch_search版本 1.5.0插件制作者 233免费930 行 / 55.4 KBHook / 路由 / 后台页
    统一搜索标题、主题正文、回帖和用户,按相关性排序并显示清晰的命中结果,支持可确认的搜索积分扣除。
    app/plugins/meilisearch_search/plugin.php
    开发日志已有 3 条

    此项目接受所有登录用户协助维护和提交更新。

    • 秦始黄
      秦始黄
      版本 1.5.0 810e2413f91c 更新:重构了搜索前台功能,样式和结构,让搜索体验更好 。 支持综合搜索、多词搜索。 支持按相关性、回复数、时间、浏览数排序。 支持搜索用户。 内置了搜索高亮。 内置搜索扣积分。release
    • bbs1org
      bbs1org
      版本 1.0.1 7add279d4fde 更新:分享
    • 233
      233
      版本 1.0.1 9daf41d6c900 更新:旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。
    主楼
  • 质量报告

    插件质量报告

    插件:meilisearch_search

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    app.boot全站请求启动否5----
    page.before_render全站页面输出前否5--app_users-
    topic.index_data.load首页/版块/用户主题列表查询前否5----
    topic.list_columns主题列表列定义否4----
    topic.toolbar_actions首页/版块列表工具栏否4----
    reply.after_save回帖保存后否3--app_replies, app_topics-
    topic.after_save主题保存后否3--app_topics-
    content.before_delete内容删除操作否2--app_replies-

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    plugin_meilisearch_search_charges

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否--
    event_keykey否-唯一
    query_hashkey否--
    querystring否--
    scopekey否--
    amountINTEGER否--
    balance_afterINTEGER否--
    created_atuint否--
    #1
  • idc

    无法安装,插件id与市场id不一致。

    #2
  • 233

    已修复并更新到 1.0.1。v8.5.23 安装器读取源码中第一次字面量 'id' => '...';本插件在 manifest 前的 Meilisearch 文档数组也有 id,被误当成插件 ID。新版把文档 ID 键改为动态表达式,源码第一次字面量 ID 现在就是 meilisearch_search。已用 v8.5.23 安装器同一正则验证通过。

    #3
  • idc

    @233 感谢修复

    #4
  • 233

    收到,感谢复测。当前市场 1.0.1 保持该修复。

    #5
  • 350

    🔍 插件审查报告(对照《AI 开发规则》与开发者文档)

    🔒 安全问题

    未发现明显问题。搜索按版块浏览权限(allow_view_groups)过滤,SQL 全部参数化,管理页需 need_admin 且表单带 form_token。仅提醒:默认 endpoint 为 127.0.0.1:7700(plugin.php:10),若改成远程明文 http 地址,API Key 会以明文 Bearer 头发送(plugin.php:35),建议强制 https 或在保存时提示风险。

    ⚡ 性能问题

    「重建全部索引」在单个请求内同步循环(plugin.php:246–269):先 DELETE 全部文档(plugin.php:243)再逐批 POST,大站会超出 PHP 执行时间被中断,留下空/残缺索引,搜索静默缺结果。建议改为 cron/后台任务分批重建并支持断点续传。另 topic.after_save/reply.after_save 内又用 one() 重读整行(plugin.php:93、109),可复用 ctx 已带字段,仅补 created_at,避免每次保存多一次查询。

    🐛 功能/规范缺陷

    外部请求缺 User-Agent(plugin.php:41–57 只设了超时与响应大小上限),规范要求外部 HTTP 必须带 UA,请补 CURLOPT_USERAGENT。

    ✅ 修复优先级

    1. 重建索引改异步/分批,避免超时与残缺索引;2. 补 User-Agent;3. 远程 http 下提示 API Key 明文风险。
    #6
  • 399

    🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)

    插件:Meilisearch 全文搜索(meilisearch_search)v1.0.1

    结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。

    #7
  • 233

    旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。

    #8
  • bbs1org

    版本 1.0.1 更新:
    分享

    #9
  • 秦始黄

    版本 1.5.0 更新:
    重构了搜索前台功能,样式和结构,让搜索体验更好 。
    支持综合搜索、多词搜索。
    支持按相关性、回复数、时间、浏览数排序。
    支持搜索用户。
    内置了搜索高亮。
    内置搜索扣积分。

    #10
  • 秦始黄

    截图
    paste-20260907-085004.png
    后台截图
    paste-20260907-085037.png

    #11
  • bbs1org

    Meilisearch 的资源占用如何

    #12
  • 秦始黄

    挺高的 内存比mysql占用还高

    #13

发表回复

登录后回复