Elasticsearch 是一個「開源的分佈式、RESTful 風格的搜索和數據分析引擎」。它的底層是開源庫 Apache Lucene。
Lucene 是當下最先進、高性能、全功能的搜索引擎庫——無論是開源還是私有,但它也僅僅是一個庫。為瞭充分發揮其功能,需要使用Java並將Lucene直接集成到應用程序中。
為瞭解決Lucene使用時的繁復性,於是 Elasticsearch 便應用而生。它有Java 編寫,內部采用Lucene做索引與搜索,但是它的目標是「使全文檢索變得更簡單」,簡單來說,就是對Lucene做瞭一層封裝,提供瞭一套簡單一致的RESTful API 來幫助我們實現存儲和檢索。
「==elasticsearch是面向文檔,關系行數據庫 和 elasticsearch 客觀的對比!一切都是JSON!==」
分佈式的搜索引擎和數據分析引擎
全文檢索,結構化檢索,數據分析
對海量數據進行進實時的處理
包含一個或多個啟動著es實例的機器群。通常一臺機器起一個es實例、同一網絡下,集群名字一樣的多個es實例自動組成集群,自動均衡分片等行為。默認集群名為“elasticsearch”
每個es實例稱為一個節點。節點名自動分配,也可以手動配置
es中的最小數據單元。一個document就想數據庫中的一條記錄。以json的格式顯示。多個document存儲於一個索引(index)中
相當於數據庫中的表
相當於數據庫中的列
在Index(索引)中,可以定義一個或多個類型。一個類型是索引中一個邏輯的種類/分區、
索引可以存儲大量數據,可以超過單個節點的硬件限制。
關系行數據庫 | elasticsearch |
---|
Solr是Apache下的一個頂級開源項目,采用java開發,基於Lucene的全文搜索服務器。Solr提供瞭比Lucene更為豐富的查詢語言,同時實現瞭可配置、可擴展、並對索引、搜索性能進行瞭優化。可以獨立運行,一個個獨立的企業級搜索服務器,可以通過http請求,像搜索引擎服務器提交一定格式的文件,生成索引;也可以通過提出查找請求,得到響應結果
總結:
這裡以docker方式安裝
docker run -d --restart=always --name elasticsearch --network iot_net --network-alias elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.1
docker run -d --restart=always --name kibana --network iot_net -p 5601:5601 -e ELASTICSEARCH_URL=http://elasticsearch:9200 kibana:7.1.1