勵志故事:比Elasticsearch更快的即時開源搜尋引擎typesense

banq發表於2021-07-15

這是作者Kishore Nallan每天上班前或下班後的副專案,每天寫一些程式碼,沒有最後期限,沒有季度目標,沒有里程碑。
專注於一件事:每天出現並編寫一些程式碼。有些功能需要一個小時才能實現,有些功能需要幾個小時才能實現,有些甚至需要持續數週,但這並不重要,因為沒有任何形式的截止日期。
簡要總結:
  • 2015 年:原型設計和基準測試各種資料結構(秘訣?)
  • 2016 : 首次正式提交,構建核心模糊文字搜尋引擎
  • 2017:HTTP API,支援數字過濾和分面搜尋
  • 2018 年:客戶端庫、只讀副本、Hacker News 釋出失敗
  • 2019 年:賺到第一美元,許多每個人都認為理所當然的小功能
  • 2020 年:叢集、Typesense Cloud、多個演示、Hacker News 成功釋出
  • 2021 年:全職投入 Typesense,撰寫我們的第一篇博文 :)

我們從一個簡單的想法開始:透過構建一個開箱即用的令人愉快的搜尋引擎,使良好的搜尋民主化。即使在我們剛開始時,我們也知道網站和應用程式總是需要搜尋,而且這是一個龐大且不斷增長的市場。
下面展示了 Typesense 在大型資料集上的作用:

 
與 Elasticsearch 有何不同?
Elasticsearch 是一個大型軟體,需要花費大量精力來設定、管理、擴充套件和微調。它為您提供幾千個配置引數,以達到您的理想配置。因此,它更適合擁有頻寬使其投入生產、定期監控和擴充套件的大型團隊,尤其是當他們需要儲存數十億個文件和 PB 級資料(例如:日誌)時。
Typesense 專為縮短“上市時間”而構建,以獲得令人愉悅的搜尋體驗。它是一種輕量級但功能強大且可擴充套件的替代方案,專注於開發人員的幸福感和體驗,具有清晰的文件記錄的 API、清晰的語義和智慧的預設值,因此它開箱即用,無需您開啟許多旋鈕。
Elasticsearch 也執行在 JVM 上,這本身就需要花費大量精力來調整以最佳化執行。另一方面,Typesense 是一個輕量級的自包含本機二進位制檔案,因此設定和操作都很簡單。
 
特點:
  • 極快:內建 C++。從頭開始精心設計,用於低延遲(<50 毫秒)即時搜尋。
  • Raft-based Clustering:建立一個高可用的分散式叢集。
  • 無執行時依賴性: Typesense 是一個二進位制檔案,您可以使用單個命令在本地或生產中執行。
  • 一個新的 Typesense 伺服器將消耗大約 30 MB 的記憶體。當您開始索引文件時,記憶體使用量將相應增加。它增加多少取決於您索引的欄位的數量和型別。
    我們努力保持記憶體中資料結構的精簡。給你一個粗略的想法:當 100 萬個 Hacker News 標題和它們的點數一起被索引時,Typesense 消耗 165 MB 的記憶體。相同大小的 JSON 格式磁碟資料為 88 MB。如果您有自己資料集中的任何數字,我們可以將其新增到此部分,請向我們傳送 PR!

相關文章