1 ElasticSearch 介紹
Elasticsearch 是一個(gè)實(shí)時(shí)的分布式搜索分析引擎, 它能讓你以一個(gè)之前從未有過(guò)的速度和規(guī)模,去探索你的數(shù)據(jù)。 它被用作全文檢索、結(jié)構(gòu)化搜索、分析以及這三個(gè)功能的組合 。
Elasticsearch是一個(gè)基于Apache Lucene(TM)的開(kāi)源搜索引擎。無(wú)論在開(kāi)源還是專有領(lǐng)域,Lucene可以被認(rèn)為是迄今為止最先進(jìn)、性能最好的、功能最全的搜索引擎庫(kù)。
但是,Lucene只是一個(gè)庫(kù)。想要使用它,你必須使用Java來(lái)作為開(kāi)發(fā)語(yǔ)言并將其直接集成到你的應(yīng)用中
,更糟糕的是,Lucene非常復(fù)雜,你需要深入了解檢索的相關(guān)知識(shí)來(lái)理
解它是如何工作的
Elasticsearch也使用Java開(kāi)發(fā)并使用Lucene作為其核心來(lái)實(shí)現(xiàn)所有索引和搜索的功能,但是它的目的是通過(guò)簡(jiǎn)單的RESTful API來(lái)隱藏Lucene的復(fù)雜性,從而讓全文搜索變得簡(jiǎn)單。
Elasticsearch 使用 JavaScript Object Notation 或者 JSON 作為文檔的序列化格式。 JSON 序列化被大多數(shù)編程語(yǔ)言所支持,并且已經(jīng)成為 NoSQL 領(lǐng)域的標(biāo)準(zhǔn)格式。 它簡(jiǎn)單、簡(jiǎn)潔、易于閱讀。
考慮下面這個(gè) JSON 文檔,它代表了一個(gè) user 對(duì)象:
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" } |