Z次元
文章 笔记 日志
专题
专栏分类 文章归档
友链
友情链接 朋友圈
交流
留言 关于我
头像
系列文章
-
-
-
-
SpringBoot集成轻量级搜索引擎——Meilisearch
系列文章
知识积累
最后更新:2025/8/7|创建时间:2025/8/7

介绍了如何在SpringBoot中集成轻量级搜索引擎Meilisearch,包括安装方法、配置参数、常用API及高级搜索功能的实现。

前言

之前博客一直用的RediSearch作为搜索引擎,因为博客本来就使用了Redis作为缓存,所以使用RediSearch也就是多加个Redis的模块,基本不会多占用内存。不过RediSearch对中文支持不太友好,所以使用体验实在是一言难尽。

至于ElasticSearch,启用后直接占用了1G的内存,用来做博客的搜索引擎,属实大材小用。

所以最近在寻找RediSearch替代品的时候,也是发现了Meilisearch这款搜索引擎。

安装部署

Meilisearch官网提供了多种安装方式

CURL

博主使用的是curl安装:

# 安装 Meilisearch
curl -L https://install.meilisearch.com | sh


# 启动 Meilisearch
./meilisearch

Docker

或者也可以选择docker直接安装:

# 拉取docker镜像
docker pull getmeili/meilisearch:v1.16


# 通过配置密钥启动
# PowerShell运行时,需要将${pwd} 替换为 $(pwd)
docker run -it --rm \
    -p 7700:7700 \
    -e MEILI_ENV='development' \
    -v $(pwd)/meili_data:/meili_data \
    getmeili/meilisearch:v1.16

Windows

windows启动直接从官方开源仓库下载最新软件包即可

默认启动端口为7700:

云服务

如果你不想自己部署的话,Meilisearch官网也提供了Meilisearch Cloud服务,直接登录就能使用。

参数变量配置

除了默认的启动方式外,Meilisearch还支持配置参数变量。

启动时配置

./meilisearch --db-path ./meilifiles --http-addr 'localhost:7700'

环境变量

export MEILI_DB_PATH=./meilifiles
export MEILI_HTTP_ADDR=localhost:7700
./meilisearch

配置文件

如果你的参数较多的话,还是推荐通过配置文件启动

./meilisearch --config-file-path="./config.toml"

配置文件可以通过以下命令下载:

curl https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml > config.toml

SpringBoot SDK集成

由于Meilisearch还没有官方的starter,所以只能通过Java SDK集成。

引入依赖:

        <dependency>
            <groupId>com.meilisearch.sdk</groupId>
            <artifactId>meilisearch-java</artifactId>
            <version>0.15.0</version>
        </dependency>

配置文件:

meilisearch:
  host: http://127.0.0.1:7700
  # 默认为空
  api-key: { 密钥 }

常用API

Meiliserarch官网提供了多种编程语言的使用示例

索引


    @Autowired
    protected Client meiliSearchClient;

    public void createIndex(String indexName) {
        meiliSearchClient.createIndex(indexName);
    }


    public void deleteIndex(String indexName) {
        meiliSearchClient.deleteIndex(indexName);
    }

    public void getIndexTest() {
        String indexName = "ahzoo";
        Index index =  meiliSearchClient.getIndex(indexName);
    }

设置

                    // 更新索引配置
                    Settings settings = new Settings();
                    // 按重要性排序的用于搜索匹配查询词的字段
                    settings.setSearchableAttributes(new String[]{"title", "content"});
                    // 返回文档中显示的字段
                    settings.setDisplayedAttributes(new String[]{"id", "title", "content", "createdDate"});
                    // 	对搜索结果进行排序时使用的属性
                    settings.setSortableAttributes(new String[]{"createdDate"});
                    updateIndexSettings(POST_INDEX, settings);

文档

添加或更新文档:

    private void saveOrUpdateList(List<SearchArticleDTO> articleDTOList) {
        String indexName = "ahzoo";
        String primaryKey = "id";
        Index index = meiliSearchClient.index(indexName);
        index.updateDocuments(JSON.toJSONString(articleDTOList, primaryKey);
    }

删除文档

        String indexName = "ahzoo";
        String documentId = "999";
        Index index = meiliSearchClient.index(indexName);
        index.deleteDocument(documentId);

搜索

        String indexName = "ahzoo";
        String query = "ahzoo.cn";
        Index index = meiliSearchClient.index(indexName);
        String res = index.search(query);

高级搜索:

Meilisearch支持自定义搜索配置,比如可以设置高亮和排序等:

        String indexName = "ahzoo";
        SearchRequest searchRequest = SearchRequest.builder()
                .q(keyword)
                .attributesToHighlight(new String[]{"content"})
                .sort(new String[]{"createdDate:desc"})
                .build();
        Index index = meiliSearchClient.index(indexName);
        index.search(searchRequest);

集成示例

集成后效果如下:

版权声明
本文依据 CC-BY-NC-SA 4.0 许可协议授权,请您在转载时注明文章来源为 Z次元 ,若本文涉及转载第三方内容,请您一同注明。
更多专栏文章推荐
知识积累
人非生而知之者,孰能无惑?惑而不从师,其为惑也,终不解矣。
JDK新版特性(18-21)
2025/2/7
JDK新版特性(11-17)
2025/1/30
评论区
发表评论

这里还没有评论哦

快来发一条评论抢占前排吧

前言
安装部署
CURL
Docker
Windows
云服务
参数变量配置
启动时配置
环境变量
配置文件
SpringBoot SDK集成
常用API
索引
设置
文档
搜索
集成示例
目录
前言
安装部署
CURL
Docker
Windows
云服务
参数变量配置
启动时配置
环境变量
配置文件
SpringBoot SDK集成
常用API
索引
设置
文档
搜索
集成示例
十玖八柒
每天进步多一点
欢迎到访φ(゜▽゜*)♪
最新评论
个人占星:

DeepSeek没有想象中的好用

个人占星:

想给自己的网站弄个统计功能,但不会弄,头疼

永恒末匕:

好哇塞,这个厉害

十玖八柒:

测试图片发送

我的
个人主页
站点地图
RSS订阅
导航
十年之约
虫洞穿梭
全站友链
虚位以待
©2020 - 2025 By 十玖八柒 版权所有
豫ICP备20021466号