文章最前: 我是Octopus,這個名字來源於我的中文名--章魚;我熱愛編程、熱愛算法、熱愛開源。所有源碼在我的個人github ;這博客是記錄我學習的點點滴滴,如果您對 Python、Java、AI、算法有興趣,可以關注我的動態,一起學習,共同進步。
相關文章:
- LeetCode:55. Jump Game(跳遠比賽)
- Leetcode:300. Longest Increasing Subsequence(最大增長序列)
- LeetCode:560. Subarray Sum Equals K(找出數組中連續子串和等於k)
文章目錄:
首先,先說一下solr的優缺點和elasticSearch 的優缺點;
Solr優缺點:
優點:
- Solr有一個更大、更成熟的用戶、開發和貢獻者社區。
- 支持添加多種格式的索引,如:HTML、PDF、微軟 Office 系列軟件格式以及 JSON、XML、CSV 等純文本格式。
- Solr比較成熟、穩定。
- 不考慮建索引的同時進行搜索,速度更快。
缺點:
- 建立索引時,搜索效率下降,實時索引搜索效率不高。
Elasticsearch優缺點:
優點:
- Elasticsearch是分佈式的。不需要其他組件,分發是實時的,被叫做”Push replication”。
- Elasticsearch 完全支持 Apache Lucene 的接近實時的搜索。
- 處理多租戶不需要特殊配置,而Solr則需要更多的高級設置。
- Elasticsearch 採用 Gateway 的概念,使得完備份更加簡單。
- 各節點組成對等的網絡結構,某些節點出現故障時會自動分配其他節點代替其進行工作。
缺點:
- 只有一名開發者(當前Elasticsearch GitHub組織已經不只如此,已經有了相當活躍的維護者)
2. 還不夠自動(不適合當前新的Index Warmup API)
Elasticsearch 與 Solr 的比較總結:
1.Solr 利用 Zookeeper 進行分佈式管理,而 Elasticsearch 自身帶有分佈式協調管理功能;
2.Solr 是傳統搜索應用的有力解決方案,但 Elasticsearch 更適用於新興的實時搜索應用。
3.Solr 支持更多格式的數據,而 Elasticsearch 僅支持json文件格式;
4.Solr 官方提供的功能更多,而 Elasticsearch 本身更注重於核心功能,高級功能多有第三方插件提供;
5.Solr 在傳統的搜索應用中表現好於 Elasticsearch,但在處理實時搜索應用時效率明顯低於 Elasticsearch。
優缺點比較:
選擇solr最主要:
1.我們的項目中dubbox要用到zookeeper作爲註冊中心,剛好可以利用zookeeper來協調Solr集羣;
2.如果不在實時插入查詢,solr搜索引擎的暫時可以滿足搜索的速度需求;
3.項目後期升級要朝着hadoop這塊發展,當數據量大的時候,用hadoop處理數據,而solr可以很簡便的與hadoop結合。由於Hadoop處理大量數據,Solr幫助我們從這麼大的源中找到所需的信息;不僅限於搜索,Solr也可以用於存儲目的;
4.還有最後一個原因,solr有一個成熟的社區,我們在開發中遇到的問題 ,可以向社區求助,以便使我們更快的解決問題;