背景
由于公司項目需要用到全文搜索這個功能,而且要求輕量級,不能用復雜的ES,于是在網上搜索資料。一次偶然機會,發(fā)現了一個名字特別顯眼的搜索引擎——MeiliSearch!
MeiLi(美麗),這么直白用拼音命名項目,這越發(fā)激起了小編的好奇心,好了,帶著滿腦的疑問,我們來研究一下這個美麗的搜索引擎吧!
概要
MeiliSearch,顧名思義,美麗的搜索引擎,不僅美麗,其上手速度和小規(guī)模數據量下的體驗也比 ElasticSearch 更加出色。
在大型同性交友平臺 github 上面查了一下這個項目,發(fā)現是近2年火起來的,已經有將近30K+Star了,非常優(yōu)秀!據說是Meili是在挪威神話中的神,指 “可愛的人”,是托爾的兄弟,果然中華文明博大精深,都流傳到國外了。
MeiliSearch 是一個強大、快速、開源、易于使用和部署的搜索引擎。搜索和索引都是高度可定制的,提供開箱即用的功能,如錯字容忍、過濾器和同義詞。
最最最重要的是,它是支持中文搜索的,對于國人真的是太友好了。它編寫的語言是 RUST,雖然小編沒學過 RUST,但知道 RUST 性能非常好,可以媲美C++,那應用在搜索引擎這塊,也是可以起飛了。
估計大家都等著急了,接下來就來體驗一下這個輕量美麗的搜索引擎。
安裝方式
MeiliSearch 的安裝方式有很多,支持 Docker 容器安裝、二進制方式安裝,也支持 RUST 環(huán)境下克隆項目源碼運行。
這里我們使用二進制方式安裝,為了快速體驗,直接使用簡單粗暴的 docker 方案安裝。
docker run -itd -p 7700:7700 -v /home/meilisearch/data:/meili_data getmeili/meilisearch
如上圖所示,已經成功運行了一個 MeiLiSearch 服務。
MeiLiSearch 服務自身提供可視化的 WEB 搜索頁面,我們可以訪問一下這個頁面來驗證服務是否運行
如上圖所示,我們可以在瀏覽器上看到搜索界面,由于還沒有創(chuàng)建索引和文檔,所以是沒有數據的。
使用
它的數據存儲:Index > Document ,和 ES 十分相似,但又簡單了許多。
由于任何搜索引擎都需要先添加索引,我們先添加索引。
添加索引
我們使用簡單的 CURL 創(chuàng)建索引。
curl
-X POST 'http://localhost:7700/indexes'
-H 'Content-Type: Application/json'
--data-binary '{
"uid": "movies",
"primaryKey": "id"
}'
添加文檔
索引是存儲文檔的地方,文檔代表的是真正的數據。
我們同樣使用CURL批量創(chuàng)建文檔
# 添加文檔到 movies 索引
curl
-X POST 'http://localhost:7700/indexes/movies/documents'
-H 'Content-Type: application/json'
--data-binary @movies.json
# movies.json為測試數據,具體數據可到meilisearch官網下載
這時,在界面上可以看到我們之前添加的數據。
測試搜索
嘗試搜索一些關鍵詞,可以看出,我們搜索就立即返回結果,并且?guī)в懈吡溜@示,速度非常快!
另外,MeiliSearch 還提供 php、JAVA、Python/ target=_blank class=infotextkey>Python 等語言的 SDK,直接無縫對接,開箱即用。
總結
對于中小型企業(yè),特別是數據量不大的,都可以使用 MeiliSearch 這款搜索引擎,輕量級安裝部署、搜索速度快到極致,名副其實的輕量級且美麗。
以上就是本期分享,如果大家對此感興趣,歡迎各位關注、留言,大家的支持就是我的動力!