一、MeiliSearch简介
谈到查找引擎,可能咱们最早想到的是Elasicsearch。Elasticsearch是一个分布式、高扩展、高实时的查找与数据剖析引擎,能够在大量的数据中查找、剖析和探究需求的数据。在后端架构中,Elasticsearch一般需求与Logstash的数据搜集和日志解析引擎Kibana一同配合来搭建可视化渠道,而这三个产品也被设计成一个集成解决方案,称为ELK。
尽管Elasticsearch满足灵活强大、扩展性和实时性也较好。但是对于中小型项目来说,Elasticsearch仍是显得有些庞大,对硬件设备的要求也较高。那么,在要求不是很高的情况下,咱们能够考虑另一种查找引擎方案:MeiliSearch。
MeiliSearch是一个功能强大、快速、开源、易于运用和布置的查找引擎,而且MeiliSearch的查找和索引都是高度可定制的,供给开箱即用的功能属性,如错字忍受、过滤器和近义词。而最重要的一点是,它【支撑中文查找】,而不需求增加额定的装备。
MeiliSearch运用RUST言语进行编写 ,RUST语音最重要的特色便是并发安全,一起它仍是支撑函数式和指令式以及泛型等编程范式的多范式言语。而且在性能方面,MeiliSearch也是媲美C++语音的存在,所以运用RUST语音编写的MeiliSearch查找引擎,能够说在性能上也是非常的优秀。
二、根本运用
2.1 装置软件
MeiliSearch的装置办法有很多,支撑Homebrew、Docker 容器、二进制、以及RUST 环境下克隆项目源码办法进行装置。
因为我运用的是MacOS,所以直接运用的是Homebrew办法,装置的指令如下:
# Update brew and install MeiliSearch
brew update && brew install meilisearch
# Launch MeiliSearch
meilisearch
发动成功后,体系会允许一个 MeiLiSearch 服务 (opens new window)。
一起,MeiLiSearch服务本身供给可视化的 Web 查找页面,咱们能够拜访一下这个页面来验证服务是否运行成功。
因为还没有创立索引和文档,所以上面的页面是没有数据的。MeiliSearch的数据布置和ES十分相似,但又要简略许多。一般需求经历【增加索引】和【增加文档】两步。
2.2 CURL办法布置
2.2.1 增加索引
首要,咱们运用简略的 CURL 创立索引。
curl \
-X POST 'http://localhost:7700/indexes' \
-H 'Content-Type: application/json' \
--data-binary '{
"uid": "movies",
"primaryKey": "id"
}'
履行成功后,如下图所示。
2.2.2 增加文档
索引是存储文档的地方,文档代表的是真正的数据,咱们同样运用CURL批量创立文档。
# 增加文档到 movies 索引
curl \
-X POST 'http://localhost:7700/indexes/movies/documents' \
-H 'Content-Type: application/json' \
--data-binary @movies.json
# movies.json为测试数据,详细数据可到meilisearch官网下载
触及的movies.json为测试数据,下载链接:movies.json。为了方便上传数据,咱们运用PostMan等东西来增加数据,上传成功体系会回来一个Json的结果,如下图。
需求说明的是,Body部分因为运用的是二进制办法,所以需求挑选binary按钮。当咱们再次刷新浏览器,就会发现数据现已查找出来。
2.3 Python办法布置
运用Python办法布置需求先装置Elasicsearch插件,装置的指令如下。
pip3 install meilisearch
然后,再调用add_documents办法新增文档。
import meilisearch
import json
client = meilisearch.Client('http://127.0.0.1:7700')
json_file = open('movies.json')
movies = json.load(json_file)
client.index('movies').add_documents(movies)
接着,咱们能够运用search办法查找数据,比方:
client.index('movies').search('botman')
当然,除了上面介绍的两种布置办法,MeiliSearch 还供给PHP、JAVA、Python 等言语的 SDK,直接直接集成到项目,开箱即用。
三、总结
总的来说,对于数据量不是很大的中小型企业来说(几百万到几千万的数据),都能够运用 MeiliSearch 查找引擎。一起,它的运用场景根本能够掩盖当前主流的渠道和技能,如管理后台查找、小程序查找等场景中。是一款真正轻量级装置布置、查找速度快到极致,当之无愧的轻量级且美丽查找引擎。
官网文档链接:docs.meilisearch.com/
本文正在参加「金石计划 . 瓜分6万现金大奖」