再見 ElasticSearch,這個功能強大的輕量級搜索引擎真香!

晚上好呀,我是小金。剛剛肝完了這篇文章,求個在看和點贊鼓勵一下呀!

這篇文章建議大家一定要收藏!接下來要給大家推薦一個基於 Rust 寫搜索引擎,非常實用,搭建搜索服務的時候可以用上。

這個開源搜索引擎的名字叫做 MeiliSearch。根據官網介紹:

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

MeiliSearch 支持漢字(漢字)搜索、RESTful API 以及高度可定製。

相比於 ElasticSearch 來說,MeiliSearch 在小數據規模下更加方便易用。

瞭解過 Rust 這門編程語言的小夥伴應該知道 Rust 的性能非常好,和 C++ 想必幾乎沒有太大差別,僅僅是在需要額外安全保證的代碼會比 C++ 慢一些。並且,Rust 相比於 C 和 C ++ 在內存管理方面更加聰明,沒有內存泄露的風險。

MeiliSearch 的搜索速度非常快,通常只需要 50 毫秒以內,搜索即輸入的快感體驗!

快速體驗

安裝

你可以使用 Docker 很方便的安裝 MeiliSearch。

docker run -p 7700:7700 -v "$(pwd)/data.ms:/data.ms" getmeili/meilisearch

Linux & Mac OS 的一鍵安裝和啓動的命令:

curl -L https://install.meilisearch.com | sh
./meilisearch

如果你本地有 Rust 環境的話,也可以直接克隆項目源碼運行。

git clone https://github.com/meilisearch/MeiliSearch.git
cd MeiliSearch
cargo run --release

運行成功的示意圖如下:

用瀏覽器訪問 http://127.0.0.1:7700/ 就可以看到 MeiliSearch 提供的 Web 搜索頁面。

添加文檔

可以使用 curl 命令添加文檔到指定的索引,索引是存儲文檔的地方,文檔代表的是真正的數據。

# 添加文檔到 movies 索引
curl \
  -X POST 'http://127.0.0.1:7700/indexes/movies/documents' \
  --data @movies.json

movies.jsonmovies.json 的完整數據下載鏈接:https://docs.meilisearch.com/movies.json)

如上所示,要將文檔添加到 MeiliSearch,您必須提供:

搜索

哦了!文檔已經有了。咱們現在能搜索。

curl 'http://127.0.0.1:7700/indexes/movies/search' \
--data '{ "q": "botman" }'

回覆結果:

{
  "hits"[
    {
      "id""29751",
      "title""Batman Unmasked: The Psychology of the Dark Knight",
      "poster""https://image.tmdb.org/t/p/w1280/jjHu128XLARc2k4cJrblAvZe0HE.jpg",
      "overview""Delve into the world of Batman and the vigilante justice tha",
      "release_date""2008-07-15"
    },
    {
      "id""471474",
      "title""Batman: Gotham by Gaslight",
      "poster""https://image.tmdb.org/t/p/w1280/7souLi5zqQCnpZVghaXv0Wowi0y.jpg",
      "overview""ve Victorian Age Gotham City, Batman begins his war on crime",
      "release_date""2018-01-12"
    }
    ...
  ],
  "offset": 0,
  "limit": 20,
  "processingTimeMs": 2,
  "query""botman"
}

常用編程語言集成

MeiliSearch 提供了 JS、Python、PHP、Ruby、Go、Rust 的開箱即用的客戶端。

比如說,對於 Python 項目來說,我們通過下面幾行代碼就可以添加文檔。

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)

通過下面一行代碼即可實現搜索:

client.index('movies').search('botman')

記得提前下載 meilisearch 的依賴。

pip3 install meilisearch
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/pELrnmkTYBEJHfHQ2S8APg