Docker三分钟部署ElasticSearch平替MeiliSearch轻量级搜索引擎

embedded/2024/10/17 12:35:54/

👩🏽‍💻个人主页:阿木木AEcru (更多精彩内容可进入主页观看)

🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》

💹每一次技术突破,都是对自我能力的挑战和超越。

目录

    • 一、 什么是MeiliSearch?
    • 二、对比ElasticSearch有什么好处?
    • 三、使用场景有哪些?
    • 四、docker部署MeiliSearch
      • 4.1 创建数据持久化文件夹
      • 4.2 拉取镜像
      • 4.3 运行容器
    • 五、访问测试
      • 5.1 访问
      • 5.2 下载测试文件
      • 5.3 导入测试文件
    • 六、结尾

一、 什么是MeiliSearch?

MeiliSearch作为轻量级搜索引擎的解决方案,相比于Elasticsearch,它更适用于中小型项目,提供快速、高精度、易用且支持中文搜索的特点。MeiliSearch拥有定制化API和多语言支持,尤其适合数据量不大但对速度和易用性有要求的场景。

二、对比ElasticSearch有什么好处?

Meilisearch以其轻量级和高性能的特点,为需要快速、简单搜索解决方案的开发者和中小型项目提供了理想选择。与Elasticsearch相比,Meilisearch的资源占用更少,部署过程更为简便,无需复杂的集群配置即可快速启动服务。

Meilisearch的搜索响应时间极短,通常在50毫秒以内,为用户提供了接近即时的搜索体验。它内置了智能搜索功能,如错字容忍和同义词识别,这些功能开箱即用,无需额外配置,大大简化了开发流程。

支持多语言SDK是Meilisearch的另一大优势,无论是在Python、Java还是Go等流行编程语言中,开发者都能轻松集成Meilisearch,享受到它带来的便利。Meilisearch的API设计直观易用,即便是编程新手也能快速掌握。

Meilisearch的社区活跃,文档详尽,为用户在使用过程中遇到的问题提供了丰富的解答和指导。此外,Meilisearch对中文搜索的原生支持,为中文内容的搜索提供了极大的便利,无需额外的语言处理配置。

尽管Meilisearch在处理大规模数据集和复杂查询方面可能不如Elasticsearch强大,但其在成本效益、易用性和快速响应方面的优势,使其成为许多现代应用的理想搜索解决方案。随着技术的不断发展,Meilisearch有望在搜索引擎领域扮演更加重要的角色,为用户带来更加高效和智能的搜索体验。

三、使用场景有哪些?

  1. 电子商务网站:通过实时搜索建议和个性化搜索结果来提升用户体验。
  2. 内容管理系统:快速检索文档、博客文章、新闻等,提高内容查找效率。
  3. 企业内部搜索:为员工提供快速访问公司内部数据和知识库的能力。
  4. 初创公司和小型项目:由于资源和成本限制,需要一个易于部署和维护的搜索解决方案。
  5. 个人开发者:为个人项目提供快速、简单的搜索功能,无需复杂的设置。
  6. 管理后台搜索:在管理后台提供高效的数据检索,简化操作流程。
  7. 小程序搜索:为小程序用户提供快速响应的搜索体验。
  8. 网站搜索功能:为各种网站提供站内搜索能力,增强用户交互。
  9. 文档搜索:在大量文档中快速定位所需信息。
  10. 商品搜索:在电商平台上提供商品搜索,提升购物体验。

dockerMeiliSearch_38">四、docker部署MeiliSearch

4.1 创建数据持久化文件夹

sudo mkdir -p /usr/local/meiliData

4.2 拉取镜像

 docker pull getmeili/meilisearch:v1.8

这里需要注意的是,我在服务器是是拉不到的(需要魔法上网),我就在本地安装了DockerDesktop ,再使用魔法上网然后拉取下来的镜像,然后再打包成tar包上传到服务器运行。

4.3 运行容器

sudo docker run -it \
--privileged=true \
-d --restart=always \
-p 7700:7700 \
-e MEILI_MASTER_KEY='V24oN6ZyG810XEvczp' \
-v /usr/local/meiliData:/meili_data \
--name meilisearch \
getmeili/meilisearch:v1.8

1. `sudo docker run -it`:以管理员权限启动一个新的Docker容器,并与它交互。
2. `--privileged=true`:给予容器特权,使其具有更多权限。
3. `-d`:让容器在后台运行。
4. `--restart=always`:设置容器退出后自动重启。
5. `-p 7700:7700`:将宿主机的7700端口映射到容器的7700端口。
6. `-e MEILI_MASTER_KEY='V24oN6ZyG810XEvczp'`:设置环境变量,用于Meilisearch的API访问密钥。
7. `-v /usr/local/meiliData:/meili_data`:将宿主机的目录挂载到容器内,用于数据持久化。
8. `--name meilisearch`:给容器命名为`meilisearch`。
9. `getmeili/meilisearch:v1.8`:指定要使用的Meilisearch镜像及其版本。

如果开启了防火墙还需要开放一下防火墙的7700端口(如果防火墙没有开启就跳过这一步即可)

firewall-cmd --zone=public --add-port=7700/tcp --permanent
systemctl restart firewalld.service

如果是云服务器,还需要开放一下安全组的7700端口

五、访问测试

5.1 访问

使用 ip:7700 的方式访问即可需要输入再部署时指定的密钥

5.2 下载测试文件

wget https://www.meilisearch.com/movies.json

5.3 导入测试文件

curl \-X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=id' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer V24oN6ZyG810XEvczp' \--data-binary @movies.json

响应回来这样的信息就表示成功
{"taskUid":0,"indexUid":"movies","status":"enqueued","type":"documentAdditionOrUpdate","enqueuedAt":"2024-06-26T03:08:48.646164654Z"}

需要注意的是 Authorization: Bearer <部署时候填入的密钥> , 这时再回去访问一下 meilisearch ,发现已经是有内容了

还可以进行搜索,搜素的词会有高亮显示。

六、结尾

接下来将推出 SpringBoot 整合 MeiliSearch , 感兴趣的小伙伴可以关注一下,谢谢!

感谢观看至此,希望该文章能够帮助到您提升知识和技能。如果您喜欢我的内容,请不要忘记点赞和分享哦!👍


http://www.ppmy.cn/embedded/53844.html

相关文章

多线程并发控制:悲观锁与乐观锁的区别解析

引言 在多线程环境中&#xff0c;共享数据的一致性问题尤为突出。为了保证数据的完整性和一致性&#xff0c;开发者需要选择合适的并发控制策略。悲观锁和乐观锁是两种常见的策略&#xff0c;它们在理念、实现方式以及适用场景上存在显著差异。本文将深入探讨这两种锁的区别&a…

MyBatis案例

目录 一、配置文件1.数据与环境准备1.1 创建tb_brand表1.2 在Pojo中创建实体类Brand.java1.3 在test文件夹下的java中创建测试类1.4 安装MyBatisX插件 二、增删改查1. 查询 一、配置文件 1.数据与环境准备 1.1 创建tb_brand表 -- 删除tb_brand表 drop table if exists tb_bra…

机器学习Python代码实战(一)线性回归算法

一.简单线性回归算法 简单线性回归算法的函数表达式一般为ykxb&#xff0c;需要拟合的变量是k和b。 1.导入库和数据集 2.读入数据集并以图表形式展示 分别为x轴和y轴设定标签值为area和price,其中读入的数据集csv文件是在项目的根目录下的文件夹dataset里。打印如图示。 至于…

C语言类型转换理解不同的基本类型为什么能够进行运算

类型转换 1.类型转换1.1隐式转换1.2常用算术转换1.2强制类型转换 1.类型转换 在执行算数运算时&#xff0c;计算机比C语言的限制更多。为了让计算机执行算术运算&#xff0c;通常要求操作数用相同的大小&#xff08;即为的数量相同&#xff09;&#xff0c;但是C语言却允许混合…

使用不同环境的配置文件active profile

在 IntelliJ IDEA 的 Run/Debug Configurations 中&#xff0c;Active profiles 选项通常用于与 Spring Boot 应用程序相关的配置。这是 Spring Boot 特有的一个用来管理不同环境配置的特性&#xff0c;通常用来在开发&#xff08;dev&#xff09;、测试&#xff08;test&#…

开源大数据项目推荐:引领数据时代的创新力量

随着开源项目的蓬勃发展&#xff0c;越来越多的程序员和数据科学家开始关注并积极参与到开源大数据项目中。这些项目不仅推动了技术的进步&#xff0c;也为行业带来了诸多创新应用。本文将推荐几个当前热门的大数据开源项目&#xff0c;分析其技术亮点、实际应用以及对行业的影…

西门子智能电气阀门定位器在冶金生产控制的应用

西门子智能电气阀门定位器在冶金生产控制的应用 1 前 言 在自动化程度越来越高的冶金行业中 ,调节阀起着至关重要的作用,一旦其发生故障, 轻则出现生产事故,停机,停炉影响各级生产指标,生产任务,影响装置的安全运行。重则可能出现人身安全事故,将直接影响家庭的幸福和企…

机器学习算法(二):1 逻辑回归的从零实现(普通实现+多项式特征实现非线性分类+正则化实现三个版本)

文章目录 前言一、普通实现1 数据集准备2 逻辑回归模型3 损失函数4 计算损失函数的梯度5 梯度下降算法6 训练模型二、多项式特征实现非线性分类1 数据准备与多项式特征构造2 逻辑回归模型三、逻辑回归 --- 正则化实现1 数据准备2 逻辑回归模型3 正则化损失函数4 计算损失函数的…