基本了解
ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器宇立。它提供了一個(gè)分布式多用戶能力的全文搜索引擎偏灿,基于RESTful web接口苟弛。Elasticsearch是用Java開(kāi)發(fā)的备典,并作為Apache許可條款下的開(kāi)放源碼發(fā)布诫欠,是當(dāng)前流行的企業(yè)級(jí)搜索引擎升薯。設(shè)計(jì)用于云計(jì)算中莱褒,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定涎劈,可靠广凸,快速,安裝使用方便蛛枚。
解釋上面一段話
上面的那一段話是從百度百科上摘下來(lái)的谅海,相信大家和我一樣,看了這樣一段話大家都很懵蹦浦。沒(méi)關(guān)系扭吁,我們來(lái)一句一句解釋它們。
lucene:通俗的講盲镶,這是一個(gè)用來(lái)搜索的引擎侥袜,可以簡(jiǎn)單的理解為,一個(gè)數(shù)據(jù)庫(kù)溉贿,只用來(lái)存文檔的枫吧,但是存不是它的特點(diǎn),快速的查找存進(jìn)去的東西是他的特點(diǎn)宇色。而為了快速的查找里面的東西九杂,他會(huì)建立一個(gè)倒排索引 。
基于Restful接口:這個(gè)是一種框架風(fēng)格宣蠕,可以簡(jiǎn)單的理解為例隆,用http請(qǐng)求的URL可以操作這個(gè)索引數(shù)據(jù)庫(kù)。
解釋完上面那一段話植影,我們可以來(lái)具體的安裝它了裳擎。
安裝步驟
因?yàn)槭腔趈ava開(kāi)發(fā)的涎永,那么安裝elastic search之前jdk一定是要裝好的思币。
接下來(lái)直接從官網(wǎng)上根據(jù)操作系統(tǒng)以及版本下載所需要的安裝包鹿响。
順便也可以在官網(wǎng)上簡(jiǎn)單了解下.
下載并解壓以后就可以使用了,沒(méi)有聽(tīng)錯(cuò)谷饿,就是可以直接使用了惶我,沒(méi)有聽(tīng)錯(cuò),開(kāi)箱即用就是elasticsearch的特點(diǎn)之一博投。
在解壓的目錄下找到elasticsearch.bat文件雙擊即可绸贡,在瀏覽器中輸入U(xiǎn)RL地址
如果出現(xiàn)以一個(gè)json格式的數(shù)據(jù)表示安裝成功了。
接下來(lái)安裝一個(gè)小插件使得這個(gè)頁(yè)面能好看一點(diǎn)毅哗,安裝命令如下:
cd C:\elasticsearch-2.4.4\bin
plugin install mobz/elasticsearch-head
然后再像以前一樣運(yùn)行elasticsearch,頁(yè)面就會(huì)如下圖所示
這時(shí)候就可以操作elastic search了听怕。
CRUD操作
這里需要了解的是elasticsearch的CRUD操作分為兩種形式,Query String類型操作虑绵,Query DSL Json類型操作尿瞭。下面進(jìn)行一些Query Sting操作下的增,刪翅睛,改声搁,查的操作。
增加
POST http://localhost:9200/account/person
{ ? "user":"張三", ? "title":"工程師", ? "desc":"數(shù)據(jù)庫(kù)管理" }
結(jié)果如下:
刪除
DELETE http://localhost:9200/account/person/"id"
這個(gè)理由一個(gè)id號(hào)捕发,需要注意的是疏旨,每一個(gè)Doucument都會(huì)有一個(gè)id號(hào),可以在自己插入數(shù)據(jù)時(shí)指定扎酷,也可以不指定由系統(tǒng)生成檐涝,可以對(duì)應(yīng)MySQL中的主鍵理解。
更新
PUT http://localhost:9200/account/person/"id"
查詢
GET http://localhost:9200/account/person/_search?q="索引字段"
查詢語(yǔ)句過(guò)濾條件
term
精確匹配霞玄,指定一個(gè)字段骤铃,在查找的返回結(jié)果(Document)中的指定字段中必須精確匹配term制定的內(nèi)容。
在account的person中的user字段必須含有“張三”字段坷剧。
terms
與term相似惰爬,但是支持更多的term字段的匹配。
range
range過(guò)濾用于數(shù)字惫企,對(duì)數(shù)字限定一個(gè)范圍撕瞧。
gt : 大于
gte: 大于等于
lt : 小于
lte : 小于等于
bool
用來(lái)合并多個(gè)語(yǔ)句,一般使用最多的就是bool過(guò)濾
must : 多個(gè)查詢條件的完全匹配,相當(dāng)于 and狞尔。
must_not : 多個(gè)查詢條件的相反匹配丛版,相當(dāng)于 not。
should : 至少有一個(gè)查詢條件匹配, 相當(dāng)于 or偏序。
總結(jié)
ElasticSearch很多概念可以類比MySQL的概念對(duì)應(yīng)學(xué)習(xí)
ElasSearch | MySQL | 對(duì)應(yīng)的意義 |
---|---|---|
Index | 數(shù)據(jù)庫(kù)的庫(kù) | 操縱ElasticSearch的最大單位 |
Type | 數(shù)據(jù)庫(kù)的表 | 直接存放數(shù)據(jù)的單位 |
Document | 數(shù)據(jù)庫(kù)的一行數(shù)據(jù) | 返回?cái)?shù)據(jù)結(jié)果的單位 |
另外页畦,這里會(huì)有一個(gè)誤區(qū)就是,”ElasticSearch就是一個(gè)數(shù)據(jù)庫(kù)“研儒,這種理解是片面的豫缨,ElasticSearch是一個(gè)搜索工具独令,在ELK Stack中可以看到這一點(diǎn)。