1 ElasticSearch 介紹
Elasticsearch 是一個實時的分布式搜索分析引擎, 它能讓你以一個之前從未有過的速度和規(guī)模,去探索你的數(shù)據(jù)。 它被用作全文檢索、結(jié)構(gòu)化搜索、分析以及這三個功能的組合 。
Elasticsearch是一個基于Apache Lucene(TM)的開源搜索引擎。無論在開源還是專有領(lǐng)域,Lucene可以被認為是迄今為止最先進、性能最好的、功能最全的搜索引擎庫。
但是,Lucene只是一個庫。想要使用它,你必須使用Java來作為開發(fā)語言并將其直接集成到你的應用中
,更糟糕的是,Lucene非常復雜,你需要深入了解檢索的相關(guān)知識來理
解它是如何工作的
Elasticsearch也使用Java開發(fā)并使用Lucene作為其核心來實現(xiàn)所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的復雜性,從而讓全文搜索變得簡單。
Elasticsearch 使用 JavaScript Object Notation 或者 JSON 作為文檔的序列化格式。 JSON 序列化被大多數(shù)編程語言所支持,并且已經(jīng)成為 NoSQL 領(lǐng)域的標準格式。 它簡單、簡潔、易于閱讀。
考慮下面這個 JSON 文檔,它代表了一個 user 對象:
1
2
3
4
5
6
7
8
9
10
11
|
{ "email" : "john@smith.com" , "first_name" : "John" , "last_name" : "Smith" , "info" : { "bio" : "Eco-warrior and defender of the weak" , "age" : 25, "interests" : [ "dolphins" , "whales" ] }, "join_date" : "2018/05/20" } |