10倍提升效率,號稱取代 Elasticsearch 的輕量級搜索引擎到底有多強悍?
Manticore Search介紹
Manticore Search 是一個使用 C++ 開發(fā)的高性能搜索引擎,創(chuàng)建于 2017 年,其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx,顯著改進了它的功能,修復(fù)了數(shù)百個錯誤,幾乎完全重寫了代碼并保持開源。這一切使 Manticore Search 成為一個現(xiàn)代,快速,輕量級和功能齊全的數(shù)據(jù)庫,具有出色的全文搜索功能。
Manticore Search目前在GitHub收獲3.7k star,擁有大批忠實用戶。同時開源者在GitHub介紹中明確說明了該項目是是Elasticsearch的良好替代品,在不久的將來就會取代ELK中的E。
同時,來自 MS 官方的測試表明 Manticore Search 性能比 ElasticSearch 有質(zhì)的提升:
在一定的場景中,Manticore 比 Elasticsearch 快 15 倍!完整的測評結(jié)果,可以參考:
- https://manticoresearch.com/blog/manticore-alternative-to-elasticsearch/
優(yōu)勢
它與其他解決方案的區(qū)別在于:
- 它非??欤虼吮绕渌娲桨父叱杀拘б?。例如,Manticore:
- 對于小型數(shù)據(jù),比MySQL快182倍(可重現(xiàn))
- 對于日志分析,比Elasticsearch快29倍(可重現(xiàn))
- 對于小型數(shù)據(jù)集,比Elasticsearch快15倍(可重現(xiàn))
- 對于中等大小的數(shù)據(jù),比Elasticsearch快5倍(可重現(xiàn))
- 對于大型數(shù)據(jù),比Elasticsearch快4倍(可重現(xiàn))
- 在單個服務(wù)器上進行數(shù)據(jù)導(dǎo)入時,最大吞吐量比Elasticsearch快最多2倍(可重現(xiàn))
- 由于其現(xiàn)代的多線程架構(gòu)和高效的查詢并行化能力,Manticore能夠充分利用所有CPU核心,以實現(xiàn)最快的響應(yīng)時間。
- 強大而快速的全文搜索功能能夠無縫地處理小型和大型數(shù)據(jù)集。
- 針對小、中、大型數(shù)據(jù)集提供逐行存儲。
- 對于更大的數(shù)據(jù)集,Manticore通過Manticore Columnar Library提供列存儲支持,可以處理無法適合內(nèi)存的數(shù)據(jù)集。
- 自動創(chuàng)建高效的二級索引,節(jié)省時間和精力。
- 成本優(yōu)化的查詢優(yōu)化器可優(yōu)化搜索查詢以實現(xiàn)最佳性能。
- Manticore是基于SQL的,使用SQL作為其本機語法,并與MySQL協(xié)議兼容,使您可以使用首選的MySQL客戶端。
- 通過PHP、Python、JavaScript、Java、Elixir和Go等客戶端,與Manticore Search的集成變得簡單。
- Manticore還提供了一種編程HTTP JSON協(xié)議,用于更多樣化的數(shù)據(jù)和模式管理。
- Manticore Search使用C++構(gòu)建,啟動快速,內(nèi)存使用最少,低級別優(yōu)化有助于其卓越性能。
- 實時插入,新添加的文檔立即可訪問。
- 提供互動課程,使學(xué)習(xí)輕松愉快。
- Manticore還擁有內(nèi)置的復(fù)制和負載均衡功能,增加了可靠性。
- 可以輕松地從MySQL、PostgreSQL、ODBC、xml和csv等來源同步數(shù)據(jù)。- 雖然不完全符合ACID,但Manticore仍支持事務(wù)和binlog以確保安全寫入。
- 內(nèi)置工具和SQL命令可輕松備份和恢復(fù)數(shù)據(jù)。
Craigslist、Socialgist、PubChem、Rozetka和許多其他公司使用 Manticore 進行高效搜索和流過濾。
使用
具體的安裝方法:https://manticoresearch.com/install/
Docker 鏡像可在Docker Hub上獲取:
- https://hub.docker.com/r/manticoresearch/manticore/
要在 Docker 中試驗 Manticore Search,只需運行:
dockerrun-eEXTRA=1--namemanticore--rm-dmanticoresearch/manticore&&untildockerlogsmanticore2>&1|grep-q"acceptingconnections";dosleep1;done&&dockerexec-itmanticoremysql&&dockerstopmanticore
之后,可以進行其他操作,例如創(chuàng)建表、添加數(shù)據(jù)并運行搜索:
createtablemovies(titletext,yearint)morphology='stem_en'html_strip='1'stopwords='en';
insertintomovies(title,year)values('TheSevenSamurai',1954),('BonnieandClyde',1954),('ReservoirDogs',1992),('Airplane!',1980),('RagingBull',1980),('GroundhogDay',1993),(',1993),('FerrisBueller'sDayOff',1986);
selecthighlight(),yearfrommovieswherematch('thedog');
selecthighlight(),yearfrommovieswherematch('days')facetyear;
select*frommovieswherematch('google');
完整文檔和開源代碼,可以移步:
- https://github.com/manticoresoftware/manticoresearch
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3712瀏覽量
64023 -
C++
+關(guān)注
關(guān)注
21文章
2085瀏覽量
73302 -
代碼
+關(guān)注
關(guān)注
30文章
4671瀏覽量
67765
原文標題:號稱取代 Elasticsearch,太猛了!
文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論