大數據利器Elasticsearch

這是我參與8月更文挑戰的第4天,活動詳情查看:8月更文挑戰markdown

大數據領域常常聽到的ELK:
E: Elasticsearch 是提供實時搜索和分析的分佈式搜索和分析引擎; L: Logstash收集、聚合和豐富您的數據並將其存儲在 Elasticsearch 中;
K: Kibana以交互方式探索、可視化和共享對數據的洞察,並管理和監控設備。數據結構

WechatIMG663.jpeg

Elasticsearch同時提供了很是便利分佈式部署方式,能夠很是快速的進行增長節點。分佈式

數據輸入

Elasticsearch 是一個分佈式文檔存儲。Elasticsearch 不是將信息存儲爲列狀數據的行,而是存儲已序列化爲 JSON 文檔的複雜數據結構。當集羣中有多個 Elasticsearch 節點時,存儲的文檔分佈在整個集羣中,而且能夠從任何節點當即訪問。post

存儲文檔後,它會被編入索引,並可在 1 秒內近乎實時地徹底搜索。Elasticsearch 使用一種稱爲倒排索引的數據結構,它支持很是快速的全文搜索。倒排索引列出出如今任何文檔中的每一個惟一單詞,並標識每一個單詞出如今的全部文檔。大數據

而且Elasticsearch支持動態增長字段,而且會自動使用最合適的數據類型。Elasticsearch 會自動檢測並將新字段添加到索引中。網站

另外還支持自定義類型和自定義分詞器,以適合各類使用場景。 這種友好且快速的搜索引擎,特別適合應用於如下場景:this

  1. WEB網站的搜索框;
  2. 訂單查詢;
  3. 文本搜索

數據輸出

Elasticsearch真正的強大之處在於可以輕鬆訪問構建在 Apache Lucene 搜索引擎庫上的全套搜索功能。搜索引擎

Elasticsearch 提供了一個簡單、一致的 REST API 來管理您的集羣以及索引和搜索您的數據。spa

而後Elasticsearch提供如下語言的客戶端,很是容易結合已有項目中去使用其強大的搜索功能:code

Java、JavaScript、Go、.NET、PHP、Perl、Python 或 Ruby
複製代碼

Elasticsearch REST API 支持結構化查詢、全文查詢和將二者結合的複雜查詢。
結構化查詢相似於您能夠在 SQL 中構造的查詢類型。例如,您能夠搜索存儲員工信息索引中的genderemployeeage字段並按hire_date字段對匹配項進行排序。全文查詢查找與查詢字符串匹配的全部文檔,並按相關性排序返回它們——它們與您的搜索詞的匹配程度。

query查詢關注的是「How well does this document match this query clause?」;
filter查詢關注的是:「Does this document match this query clause?」。

相關文章
相關標籤/搜索