勵志故事:比Elasticsearch更快的即時開源搜尋引擎typesense
這是作者Kishore Nallan每天上班前或下班後的副專案,每天寫一些程式碼,沒有最後期限,沒有季度目標,沒有里程碑。
專注於一件事:每天出現並編寫一些程式碼。有些功能需要一個小時才能實現,有些功能需要幾個小時才能實現,有些甚至需要持續數週,但這並不重要,因為沒有任何形式的截止日期。
簡要總結:
- 2015 年:原型設計和基準測試各種資料結構(秘訣?)
- 2016 : 首次正式提交,構建核心模糊文字搜尋引擎
- 2017:HTTP API,支援數字過濾和分面搜尋
- 2018 年:客戶端庫、只讀副本、Hacker News 釋出失敗
- 2019 年:賺到第一美元,許多每個人都認為理所當然的小功能
- 2020 年:叢集、Typesense Cloud、多個演示、Hacker News 成功釋出
- 2021 年:全職投入 Typesense,撰寫我們的第一篇博文 :)
我們從一個簡單的想法開始:透過構建一個開箱即用的令人愉快的搜尋引擎,使良好的搜尋民主化。即使在我們剛開始時,我們也知道網站和應用程式總是需要搜尋,而且這是一個龐大且不斷增長的市場。
下面展示了 Typesense 在大型資料集上的作用:
- 從 MusicBrainz 搜尋3200 萬首歌曲資料集:songs-search.typesense.org
- 從 OpenLibrary 搜尋 2800 萬本書資料集:books-search.typesense.org
- 從 RecipeNLG 搜尋 2M 食譜資料集:recipe-search.typesense.org
- 從 Linux 核心搜尋 100 萬條 Git 提交訊息:linux-commits-search.typesense.org
- Spellchecker with type-ahead, 333K 英文單詞:spellcheck.typesense.org
- 電子商務商店瀏覽體驗:ecommerce-store.typesense.org
與 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!
相關文章
- 開放搜尋開源相容版,支援Elasticsearch做搜尋召回引擎Elasticsearch
- ElasticSearch全文搜尋引擎Elasticsearch
- 認識搜尋引擎 ElasticsearchElasticsearch
- 開源搜尋引擎排名第一,Elasticsearch是如何做到的?Elasticsearch
- Nebula 基於 ElasticSearch 的全文搜尋引擎的文字搜尋Elasticsearch
- 使用開源搜尋引擎 YaCy 的技巧
- 開源BT磁力搜尋引擎收集
- 直播開發app,實時搜尋、搜尋引擎框APP
- elasticsearch 搜尋引擎工具的高階使用Elasticsearch
- 搜尋引擎ElasticSearch18_ElasticSearch簡介1Elasticsearch
- 使用Node,Vue和ElasticSearch構建實時搜尋引擎VueElasticsearch
- 開源搜尋技術的核心引擎 —— Lucene
- 全文搜尋引擎 Elasticsearch 入門教程Elasticsearch
- 開源搜尋引擎相關資料
- 分散式搜尋引擎Elasticsearch的架構分析分散式Elasticsearch架構
- 搜尋引擎ElasticSearch18_ElasticSearch的客戶端操作2Elasticsearch客戶端
- 搜尋引擎選型整理:Elasticsearch vs SolrElasticsearchSolr
- Scrapy分散式爬蟲打造搜尋引擎-(八)elasticsearch結合django搭建搜尋引擎分散式爬蟲ElasticsearchDjango
- 程式設計師勵志小故事程式設計師
- 搜尋引擎ElasticSearch18_ElasticSearch程式設計操作5Elasticsearch程式設計
- 基於 Elasticsearch 的站內搜尋引擎實戰Elasticsearch
- 基於c++或C的開源搜尋引擎C++
- 用elasticsearch和nuxtjs搭建bt搜尋引擎ElasticsearchUXJS
- 在 Spring Boot 中使用搜尋引擎 ElasticsearchSpring BootElasticsearch
- Laravel 之搜尋引擎elasticsearch擴充套件ScoutLaravelElasticsearch套件
- 開發人員都應該知道的開源搜尋引擎
- 搜尋引擎-03-搜尋引擎原理
- 相見恨晚!開源的傻瓜搜尋引擎,幫你快速實現搜尋功能
- elasticsearch搜尋Elasticsearch
- 大資料搜尋選開源還是商業軟體?ElasticSearch 對比 Splunk大資料Elasticsearch
- 8 個基於 Lucene 的開源搜尋引擎推薦
- Laravel5.5 使用 Elasticsearch 做引擎,scout 全文搜尋LaravelElasticsearch
- 解密Elasticsearch:深入探究這款搜尋和分析引擎解密Elasticsearch
- ElasticSearch分散式搜尋引擎——從入門到精通Elasticsearch分散式
- Elasticsearch 近實時搜尋的底層原理Elasticsearch
- zinc:替代elasticsearch的輕量級Go語言搜尋引擎ElasticsearchGo
- 用開源搜尋引擎定製你的網際網路
- 程式設計師的勵志故事:Stay Hungry, Stay Foolish程式設計師