Elasticsearch從入門到精通-Elasticsearch是什麼

做者其餘ELK快速入門系列文章html

 

logstash快速入門實戰指南web

Kibana從入門到精通數據庫

1、前言

驅動將來商業發展的最重要「能源」不是石油,而是數據。咱們還來不及瞭解它,這個世界已經被它淹沒。多年來,咱們系統間流轉和產生的大量數據已讓咱們不知所措。現有的技術都集中在如何解決數據倉庫存儲以及如何結構化這些數據。這些看上去都挺美好,直到你實際須要基於這些數據實時作決策分析的時候才發現根本不是那麼一回事。Elasticsearch在這個時代能給咱們帶什麼呢?咱們帶着這些疑問去探索Elasticsearch能作什麼。。。apache

2、Elasticsearch能作什麼

Elasticsearch 是一個實時的分佈式搜索分析引擎, 它能讓你以一個史無前例過的速度和規模,去探索你的數據。 它被用做全文檢索、結構化搜索、分析以及這三個功能的組合:編程

  • Wikipedia 使用 Elasticsearch 提供帶有高亮片斷的全文搜索,還有 search-as-you-type 和 did-you-mean 的建議。
  • 衛報 使用 Elasticsearch 將網絡社交數據結合到訪客日誌中,實時的給它的編輯們提供公衆對於新文章的反饋。
  • Stack Overflow 將地理位置查詢融入全文檢索中去,而且使用 more-like-this 接口去查找相關的問題與答案。
  • GitHub 使用 Elasticsearch 對1300億行代碼進行查詢。

然而 Elasticsearch 不只僅爲巨頭公司服務。它也幫助了不少初創公司,像 Datadog 和 Klout, 幫助他們將想法用原型實現,並轉化爲可擴展的解決方案。Elasticsearch 能運行在你的筆記本電腦上,也能夠擴展到上百臺服務器上去處理PB級數據。服務器

Elasticsearch 中沒有一個單獨的組件是全新的或者是革命性的。全文搜索好久以前就已經能夠作到了, 就像早就出現了的分析系統和分佈式數據庫。 革命性的成果在於Elasticsearch將這些單獨的,有用的組件融合到一個單一的、一致的、實時的應用中。它對於初學者而言有一個較低的門檻, 而當你的技能提高或需求增長時,它也始終能知足你的需求。網絡

若是你在閱讀本文章前已經你擁有大量數據;你準備使用它作些什麼 ,不然擁有這些數據將沒有意義。elasticsearch

不幸的是,大部分數據庫在從你的數據中提取可用知識時出乎意料的低效。 固然,你能夠經過時間戳或精確值進行過濾,可是它們可以很好地按您要求進行全文檢索、處理同義詞、經過相關性給文檔評分麼? 它們從一樣的數據中生成分析與聚合數據嗎?最重要的是,它們能實時地完成上面的那些需求而不需通過大型批處理的任務麼?編程語言

這就是 Elasticsearch 脫穎而出的地方:Elasticsearch 鼓勵你去探索與利用數據,而不是由於查詢數據太困難,就讓它們爛在數據倉庫裏面。分佈式

在使用時這些數據時,Elasticsearch 將成爲你最好的朋友,與您一塊兒探索數據裏的一切。。。

3、Elasticsearch如何誕生

Elasticsearch是一個開源的搜索引擎,創建在一個全文搜索引擎庫Apache Lucene™基礎之上。 Lucene能夠說是當下最早進,高性能,全功能的搜索引擎庫 - 不管是開源仍是私有。

可是Lucene僅僅是一個庫。爲了充分發揮其功能,你須要使用Java並將Lucene直接集成到應用程序中。更糟糕的是,您可能須要得到信息檢索學位才能瞭解其工做原理.Lucene 很是複雜。

Elasticsearch也是使用Java編寫的,它的內部使用Lucene作索引與搜索,可是它的目的是使用全文檢索變得簡單,經過隱藏Lucene的複雜性,取而代之的提供一套簡單一致的RESTful API。

然而,Elasticsearch不只僅是Lucene,而且也不只僅是一個全文搜索引擎。 它能夠被下面這樣準確的形容:

  • 一個分佈式的實時文檔存儲,每一個字段能夠被索引與搜索
  • 一個分佈式實時分析搜索引擎
  • 能勝任上百個服務節點的擴展,並支持PB級別的結構化或者非結構化數據

Elasticsearch將全部的功能打包成一個單獨的服務,這樣你能夠經過程序與它提供的簡單的RESTful API進行通訊,可使用本身喜歡的編程語言充當web客戶端,甚至可使用命令行(去充當這個客戶端)。

就Elasticsearch而言,起步很簡單。對於初學者來講,它預設了一些適當的默認值,並隱藏了複雜的搜索理論知識。它開箱即用。只需最少的理解,你很快就能具備生產力。

隨着你知識的積累,你能夠利用Elasticsearch更多的高級特性,它的整個引擎是可配置而且靈活的。從衆多高級特性中,挑選恰當去修飾的Elasticsearch,使它能解決你遇到的問題。

4、Elasticsearch的應用場景

    • 一個線上商城系統,用戶須要搜索商城上的商品。 
      在這裏你能夠用es存儲全部的商品信息和庫存信息,用戶只須要輸入」手機」就能夠搜索到他須要搜索到的商品。
    • 一個運行的系統須要收集日誌,用這些日誌來分析、挖掘從而獲取系統業務將來的趨勢。 
      你能夠用logstash(elk中的一個產品,elasticsearch/logstash/kibana)收集、轉換你的日誌,並將他們存儲到es中。一旦數據到達es中,就你能夠在裏面搜索、運行聚合函數等操做來挖掘任何你感興趣的信息。
    • 若是你有想基於大量數據(數百萬甚至數十億的數據)快速調查、分析而且要將分析結果可視化的需求。 
      你能夠用es來存儲你的數據,用kibana構建自定義的可視化圖形、報表,爲業務決策提供科學的數據依

 想用最簡單的方式去理解Elasticsearch能爲你作什麼,那就是使用它了,讓咱們開始一塊兒進入下一個Elasticsearch主題:Elasticsearch基本概念

相關文章
相關標籤/搜索