天天看點

輕量美麗的搜尋引擎——MeiliSearch

背景

由于公司項目需要用到全文搜尋這個功能,而且要求輕量級,不能用複雜的ES,于是在網上搜尋資料。一次偶然機會,發現了一個名字特别顯眼的搜尋引擎——MeiliSearch!

MeiLi(美麗),這麼直白用拼音命名項目,這越發激起了小編的好奇心,好了,帶着滿腦的疑問,我們來研究一下這個美麗的搜尋引擎吧!

輕量美麗的搜尋引擎——MeiliSearch

概要

MeiliSearch,顧名思義,美麗的搜尋引擎,不僅美麗,其上手速度和小規模資料量下的體驗也比 ElasticSearch 更加出色。

在大型同性交友平台 github 上面查了一下這個項目,發現是近2年火起來的,已經有将近30K+Star了,非常優秀!據說是Meili是在挪威神話中的神,指 “可愛的人”,是托爾的兄弟,果然中華文明博大精深,都流傳到國外了。

MeiliSearch 是一個強大、快速、開源、易于使用和部署的搜尋引擎。搜尋和索引都是高度可定制的,提供開箱即用的功能,如錯字容忍、過濾器和同義詞。

最最最重要的是,它是支援中文搜尋的,對于國人真的是太友好了。它編寫的語言是 RUST,雖然小編沒學過 RUST,但知道 RUST 性能非常好,可以媲美C++,那應用在搜尋引擎這塊,也是可以起飛了。

估計大家都等着急了,接下來就來體驗一下這個輕量美麗的搜尋引擎。

安裝方式

MeiliSearch 的安裝方式有很多,支援 docker 容器安裝、二進制方式安裝,也支援 RUST 環境下克隆項目源碼運作。

這裡我們使用二進制方式安裝,為了快速體驗,直接使用簡單粗暴的 docker 方案安裝。

docker run -itd -p 7700:7700 -v /home/meilisearch/data:/meili_data getmeili/meilisearch           
輕量美麗的搜尋引擎——MeiliSearch

如上圖所示,已經成功運作了一個 MeiLiSearch 服務。

MeiLiSearch 服務自身提供可視化的 WEB 搜尋頁面,我們可以通路一下這個頁面來驗證服務是否運作

輕量美麗的搜尋引擎——MeiliSearch

如上圖所示,我們可以在浏覽器上看到搜尋界面,由于還沒有建立索引和文檔,是以是沒有資料的。

使用

它的資料存儲:Index > Document ,和 ES 十分相似,但又簡單了許多。

由于任何搜尋引擎都需要先添加索引,我們先添加索引。

添加索引

我們使用簡單的 CURL 建立索引。

curl \
  -X POST 'http://localhost:7700/indexes' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "uid": "movies",
    "primaryKey": "id"
 }'           
輕量美麗的搜尋引擎——MeiliSearch

添加文檔

索引是存儲文檔的地方,文檔代表的是真正的資料。

我們同樣使用CURL批量建立文檔

# 添加文檔到 movies 索引
curl \
  -X POST 'http://localhost:7700/indexes/movies/documents' \
  -H 'Content-Type: application/json' \
  --data-binary @movies.json

# movies.json為測試資料,具體資料可到meilisearch官網下載下傳           
輕量美麗的搜尋引擎——MeiliSearch

這時,在界面上可以看到我們之前添加的資料。

輕量美麗的搜尋引擎——MeiliSearch

測試搜尋

嘗試搜尋一些關鍵詞,可以看出,我們搜尋就立即傳回結果,并且帶有高亮顯示,速度非常快!

輕量美麗的搜尋引擎——MeiliSearch

另外,MeiliSearch 還提供 PHP、JAVA、Python 等語言的 SDK,直接無縫對接,開箱即用。

總結

對于中小型企業,特别是資料量不大的,都可以使用 MeiliSearch 這款搜尋引擎,輕量級安裝部署、搜尋速度快到極緻,名副其實的輕量級且美麗。

以上就是本期分享,如果大家對此感興趣,歡迎各位關注、留言,大家的支援就是我的動力!

繼續閱讀