背景
由于公司項(xiàng)目需要用到全文搜索這個功能,而且要求輕量級,不能用復(fù)雜的ES,于是在網(wǎng)上搜索資料。一次偶然機(jī)會,發(fā)現(xiàn)了一個名字特別顯眼的搜索引擎——MeiliSearch!
MeiLi(美麗),這么直白用拼音命名項(xiàng)目,這越發(fā)激起了小編的好奇心,好了,帶著滿腦的疑問,我們來研究一下這個美麗的搜索引擎吧!

概要
MeiliSearch,顧名思義,美麗的搜索引擎,不僅美麗,其上手速度和小規(guī)模數(shù)據(jù)量下的體驗(yàn)也比 ElasticSearch 更加出色。
在大型同性交友平臺 github 上面查了一下這個項(xiàng)目,發(fā)現(xiàn)是近2年火起來的,已經(jīng)有將近30K+Star了,非常優(yōu)秀!據(jù)說是Meili是在挪威神話中的神,指 “可愛的人”,是托爾的兄弟,果然中華文明博大精深,都流傳到國外了。
MeiliSearch 是一個強(qiáng)大、快速、開源、易于使用和部署的搜索引擎。搜索和索引都是高度可定制的,提供開箱即用的功能,如錯字容忍、過濾器和同義詞。
最最最重要的是,它是支持中文搜索的,對于國人真的是太友好了。它編寫的語言是 RUST,雖然小編沒學(xué)過 RUST,但知道 RUST 性能非常好,可以媲美C++,那應(yīng)用在搜索引擎這塊,也是可以起飛了。
估計大家都等著急了,接下來就來體驗(yàn)一下這個輕量美麗的搜索引擎。
安裝方式
MeiliSearch 的安裝方式有很多,支持 Docker 容器安裝、二進(jìn)制方式安裝,也支持 RUST 環(huán)境下克隆項(xiàng)目源碼運(yùn)行。
這里我們使用二進(jìn)制方式安裝,為了快速體驗(yàn),直接使用簡單粗暴的 docker 方案安裝。
docker run -itd -p 7700:7700 -v /home/meilisearch/data:/meili_data getmeili/meilisearch

如上圖所示,已經(jīng)成功運(yùn)行了一個 MeiLiSearch 服務(wù)。
MeiLiSearch 服務(wù)自身提供可視化的 WEB 搜索頁面,我們可以訪問一下這個頁面來驗(yàn)證服務(wù)是否運(yùn)行

如上圖所示,我們可以在瀏覽器上看到搜索界面,由于還沒有創(chuàng)建索引和文檔,所以是沒有數(shù)據(jù)的。
使用
它的數(shù)據(jù)存儲:Index > Document ,和 ES 十分相似,但又簡單了許多。
由于任何搜索引擎都需要先添加索引,我們先添加索引。
添加索引
我們使用簡單的 CURL 創(chuàng)建索引。
curl
-X POST 'http://localhost:7700/indexes'
-H 'Content-Type: Application/json'
--data-binary '{
"uid": "movies",
"primaryKey": "id"
}'

添加文檔
索引是存儲文檔的地方,文檔代表的是真正的數(shù)據(jù)。
我們同樣使用CURL批量創(chuàng)建文檔
# 添加文檔到 movies 索引
curl
-X POST 'http://localhost:7700/indexes/movies/documents'
-H 'Content-Type: application/json'
--data-binary @movies.json
# movies.json為測試數(shù)據(jù),具體數(shù)據(jù)可到meilisearch官網(wǎng)下載

這時,在界面上可以看到我們之前添加的數(shù)據(jù)。

測試搜索
嘗試搜索一些關(guān)鍵詞,可以看出,我們搜索就立即返回結(jié)果,并且?guī)в懈吡溜@示,速度非常快!

另外,MeiliSearch 還提供 php、JAVA、Python/ target=_blank class=infotextkey>Python 等語言的 SDK,直接無縫對接,開箱即用。
總結(jié)
對于中小型企業(yè),特別是數(shù)據(jù)量不大的,都可以使用 MeiliSearch 這款搜索引擎,輕量級安裝部署、搜索速度快到極致,名副其實(shí)的輕量級且美麗。
以上就是本期分享,如果大家對此感興趣,歡迎各位關(guān)注、留言,大家的支持就是我的動力!