最近看到有一個客戶他們用的是Elasticsearch, 說實話,本人對Elasticsearch以前瞭解的比較少,準確地說,對「搜索引擎」這塊瞭解的比較少。今天就各類搜索,收集了一些「搜索引擎」相關的基礎知識,以備不時之須。web
首先了解一下什麼是「搜索引擎」,下面這段話來自於百度百科,apache
搜索引擎(Search Engine)是指根據必定的策略、運用特定的計算機程序從互聯網上搜集信息,在對信息進行組織和處理後,爲用戶提供檢索服務,將用戶檢索相關的信息展現給用戶的系統。搜索引擎包括全文索引、目錄索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、門戶搜索引擎與免費連接列表等。json
接着咱們熟悉一下大數據領域涉及到的搜索引擎的三個名詞,並介紹他們的概念與區別:服務器
Lucene是apache下的一個子項目,是一個開放源代碼的全文檢索引擎工具包,但它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎。官網地址:https://lucene.apache.org/架構
Solr是一個高性能,採用Java5開發,基於Lucene的全文搜索服務器。同時對其進行了擴展,提供了比Lucene更爲豐富的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,而且提供了一個完善的功能管理界面,是一款很是優秀的全文搜索引擎。官網地址:http://lucene.apache.org/solr/elasticsearch
Elasticsearch跟Solr同樣,也是一個基於Lucene的搜索服務器,它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。官網地址:https://www.elastic.co/products/elasticsearch分佈式
--- 下面一段是轉自別人文章中關於Elasticsearch與Solor的比較總結:
1 都是基於Lucene,且安裝都很簡單
2 Solr利用Zookeeper進行分佈式管理,而Elasticsearch自身帶有分佈式協調管理功能
3 Solr支持更多格式的數據,而Elasticsearch僅支持json格式
4 Solr官方提供功能較多,而Elasticsearch更注重核心功能,高級功能多由第三方插件提供
5 Solr在傳統的搜索應用中表現好於Elasticsearch,但Elasticsearch在實時搜索應用中效率更高工具