Lucene的開源搜索與分析引擎。通過它妳可以很方便地對數據進行深入挖掘,可以隨時放大與縮小搜索與分析的區間,並且這壹切都是實時的。為了提供了壹
個優秀的用戶體驗,我們對Elasticsearch投入了很大的精力。Elasticsearch本身的各種選項已有了良好的默認值,使用戶能夠更方便
地上手。但我們也為用戶提供了全方面的選項,在必要的情況下,可以對該引擎的幾乎每個方面進行定制。
舉例來說,當妳使用它搜索數據的時候,可以使
用傳統的查詢(‘查找滿足條件Y的所有項X’)進行過濾(在Elasticsearch術語中稱為“視圖”),高亮顯示搜索片段,為每條結果提供相應的上
下文。也可以使用地理位置(‘查找在Z裏之內的所有項’),或是為用戶提供搜索關鍵字建議,並且提供了強大的聚合(即Elasticsearch中的“分
面”(facet))能力,例如時間分布圖或者統計圖。
Elasticsearch既可以搜索、也可以保存數據。它提供了壹種半結構化、不依賴
schema並且基於JSON的模型,妳可以直接傳入原始的JSON文檔,Elasticsearch會自動地檢測出妳的數據類型,並對文檔進行索引。妳
也可以對schema映射進行定制,以實現妳的目的,例如對單獨的字段或文檔進行boost映射,或者是定制全文搜索的分析方式等等。
妳既可以在自己的膝上電腦中啟用壹個小型實例,也可以在雲端啟用幾十乃至幾百個實例,只需要壹些極小的改變而已。Elasticsearch會自動進行橫向擴展,它能夠隨著妳的應用壹起成長。
Elasticsearch
運行在JVM之上,它使用JSON格式,通過RESTful
HTTP接口的方式訪問,因此任何壹種客戶端或語言都能夠與其交互。目前已經有了大量的客戶端和框架的整合方案,包括對多種編程語言的支持,通過這些原生
的API與專門的DSL將不壹致的地方最小化,並實現性能最大化。
Elasticsearch非常適合於大數據的場合,它的高伸縮性與分布式架構
的本質使得對大量信息的搜索與存儲都可以在近乎實時的情況下完成。通過Elasticsearch-Hadoop這個項目,我們使Hadoop使用者(這
裏也包括Hive、Pig和Cascading)能夠用壹個成熟的搜索引擎來增強他們的工作流。我們還為他們提供了壹種豐富的語言,能夠讓他們更好地表達
意圖,因而更準確地獲得想要的結果,並且速度也大大提高了。