Meilisearch 搜索引擎

Meilisearch 搜索引擎

262
84

支持 Meilisearch 搜索引擎集成,提供更快速、更准确的搜索体验。

下载

安装到 Halo

方式一

如果安装了应用市场插件,可以直接在应用市场中搜索Meilisearch 搜索引擎并安装。

方式二

输入你的 Halo 站点地址,点击安装之后会重定向到你 Halo 后台并自动安装,Halo 的版本需要 >= 2.6.0。

方式三

点击手动下载,然后在 Console 上传。

Meilisearch 插件

这是一个适用于 Halo 的 Meilisearch 插件,支持将 Halo 的搜索功能与 Meilisearch 集成,提供更快速、更准确的搜索体验。

UFGKeBhZXhRHjkMnCEjJwcOevieYxcbL.png

此插件作为 Rainsheep/halo-plugin-meilisearch 的代替,原插件已经不再维护

使用方式

搭建 Meilisearch 服务

部署 Meilisearch 服务通常有两种方式:你可以选择自行在服务器上托管,或者使用 Meilisearch 官方提供的云服务。

云服务

访问 https://www.meilisearch.com/cloud 注册账号,根据引导创建项目。创建完成后,可以在控制台获取实例地址和 Master Key。

需要特别注意 Meilisearch 云服务的计费方式。

自托管

下面介绍两种常见的部署方式:

  1. 使用 Docker Compose 独立编排部署:

    这种方式适合多个项目需要同时使用一个 Meilisearch 服务的场景。
    部署完成之后,你可以解析一个域名以暴露在公网。

    services:
      meilisearch:
        image: getmeili/meilisearch:v1.15
        restart: unless-stopped
        ports:
          - "7700:7700"
        environment:
          - MEILI_ENV=production
          - MEILI_MASTER_KEY=<your-super-secret-master-key-here>
        volumes:
          - meilisearch_data:/meili_data
    
    volumes:
      meilisearch_data:
        driver: local
    
  2. 与 Halo 的 Compose 编排一起部署:

    结合 使用 Docker Compose 部署 Halo 的示例,将 Meilisearch 服务添加到 docker-compose.yml 文件中。

    通过这种方式部署之后,插件设置中的 Meilisearch 服务地址 应该是 http://meilisearch:7700(即服务在同一 Compose 网络下可通过服务名访问)

      meilisearch:
        image: getmeili/meilisearch:v1.15
        restart: on-failure:3
        networks:
          - halo_network
        volumes:
          - ./meilisearch-data:/meili_data
        environment:
          - MEILI_ENV=production
          - MEILI_MASTER_KEY=<your-super-secret-master-key-here>
    
    点击查看完整示例
    version: "3"
    
    services:
      halo:
        image: registry.fit2cloud.com/halo/halo:2.21
        restart: on-failure:3
        depends_on:
          halodb:
            condition: service_healthy
        networks:
          halo_network:
        volumes:
          - ./halo2:/root/.halo2
        ports:
          - "8090:8090"
        healthcheck:
          test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
          interval: 30s
          timeout: 5s
          retries: 5
          start_period: 30s
        environment:
          - JVM_OPTS=-Xmx256m -Xms256m
        command:
          - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
          - --spring.r2dbc.username=halo
          - --spring.r2dbc.password=openpostgresql
          - --spring.sql.init.platform=postgresql
          - --halo.external-url=http://localhost:8090/
      halodb:
        image: postgres:15.4
        restart: on-failure:3
        networks:
          halo_network:
        volumes:
          - ./db:/var/lib/postgresql/data
        healthcheck:
          test: [ "CMD", "pg_isready" ]
          interval: 10s
          timeout: 5s
          retries: 5
        environment:
          - POSTGRES_PASSWORD=openpostgresql
          - POSTGRES_USER=halo
          - POSTGRES_DB=halo
          - PGUSER=halo
      meilisearch:
        image: getmeili/meilisearch:v1.15
        restart: on-failure:3
        networks:
          - halo_network
        volumes:
          - ./meilisearch-data:/meili_data
        environment:
          - MEILI_ENV=production
          - MEILI_MASTER_KEY=<your-super-secret-master-key-here>
    
    networks:
      halo_network:
    

详细的部署方式可以参考 Meilisearch 官方文档:https://www.meilisearch.com/docs/learn/self_hosted/install_meilisearch_locally

安装插件

  1. 下载,目前提供以下两个下载方式:
  2. 安装,插件安装和更新方式可参考:https://docs.halo.run/user-guide/plugins

配置插件

  1. 进入插件设置,配置 Meilisearch 服务地址Master Key

    aAhPGjTKyJqScRIZSPcdTNftQeTuNdbP.png

  2. 进入插件扩展配置,在 扩展点定义 中选择 搜索引擎,然后选择使用 Meilisearch 即可。

    eFUBZvKbJzVVIwLudsJquCymTxueWDQa.png

注意

  • 如果配置完 Meilisearch 插件之后无法搜索,可以尝试重建一次索引。
  • 安装 Meilisearch 插件之后仍然需要搜索组件插件,Meilisearch 插件仅仅是提供服务,不会提供 UI。

安装到 Halo

方式一

如果安装了应用市场插件,可以直接在应用市场中搜索Meilisearch 搜索引擎并安装。

方式二

输入你的 Halo 站点地址,点击安装之后会重定向到你 Halo 后台并自动安装,Halo 的版本需要 >= 2.6.0。

方式三

点击手动下载,然后在 Console 上传。

这是一个开源应用,我们推荐优先在开源仓库中提交 issue,以便开发者更好地接收和跟进问题。

去提交 issue