1. 關(guān)于Elasticsearch
Elasticsearch是一個實(shí)時的分布式搜索和分析引擎。能用較快的速度去處理大規(guī)模數(shù)據(jù)。
ElasticSearch是一個基于Lucene的搜索服務(wù)器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful接口。
Elasticsearch底層用Java開發(fā),并作為Apache許可條款下的開放源碼發(fā)布,是當(dāng)前流行的企業(yè)級搜索引擎,多用于云計算中,能夠快速地實(shí)時搜索。
Elasticsearch快速、穩(wěn)定、可靠、安裝和使用十分方便,已成為越來越流行的搜索組件構(gòu)建工具。
2. Elasticsearch特點(diǎn)
(1)可以作為一個大型分布式集群(多臺服務(wù)器),應(yīng)用于企業(yè)級項目,處理PB級數(shù)據(jù),也可以作為單機(jī)版,運(yùn)行在單機(jī)上。
(2)將全文檢索、數(shù)據(jù)分析以及分布式技術(shù),合并在了一起,組成獨(dú)一無二的ES系統(tǒng)。
(3)開箱即用,部署使用十分簡單。
(4)支持全文檢索,同義詞處理,相關(guān)度排名,復(fù)雜數(shù)據(jù)分析,和海量數(shù)據(jù)的準(zhǔn)實(shí)時處理。
3. Elasticsearch體系結(jié)構(gòu)
Elasticsearch與MySQL比較,各部分對比如下:
MySQL 中有數(shù)據(jù)庫(Database)、表(Table)、行(Row),
Elasticsearch中有索引(Index)、類型(Type)、文檔(Document)
4. 下載、安裝及啟動
4.1 下載
從以下站點(diǎn)下載: https://www.elastic.co/downloads/past-releases/elasticsearch-6-5-4
4.2 安裝
解壓即可用,無需安裝
4.3 啟動
cd ~/elasticsearch/bin ./elasticsearch
4.4 查看
成功啟動后,可以看到ES啟用了兩個端口:9300和9200,其中Java開發(fā)用9300,其它用9200。
Chrome中輸入:http://127.0.0.1:9200/,看到如下類似信息,則表示啟動成功:
{ “name” : “yl_node_1”, “cluster_name” : “ylonline”, “cluster_uuid” : “vFqniIIQR5y9V_lJNRTrpA”, “version” : { “number” : “6.5.4”, “build_flavor” : “default”, “build_type” : “tar”, “build_hash” : “d2ef93d”, “build_date” : “2018-12-17T21:17:40.758843Z”, “build_snapshot” : false, “lucene_version” : “7.5.0”, “minimum_wire_compatibility_version” : “5.6.0”, “minimum_index_compatibility_version” : “5.0.0” }, “tagline” : “You Know, for Search”}
5. RESTful方式操作
5.1 新建索引
http://127.0.0.1:9200/newsindex/,用Postman工具PUT方式提交
返回結(jié)果:
{
“acknowledged”: true,
“shards_acknowledged”: true,
“index”: “newsindex”
}
5.2 新建文檔
http://127.0.0.1:9200/newsindex/news,用Postman工具POST方式提交
{“title”:”烏孫古道穿越天山山脈”,”content”:”烏孫古道穿越天山山脈,徒步線路北起新疆伊犁特克斯縣,南至新疆阿克蘇地區(qū)拜城縣,沿途可以看到高山草甸、峽谷、雪山、河流等,途中天堂湖的美景更是讓不少驢友向往。”}
返回結(jié)果:
{ “_index”: “newsindex”, “_type”: “news”, “_id”: “s8OxK4IBouFOjM8f3Mc2”, “_version”: 1, “result”: “created”, “_shards”: { “total”: 2, “successful”: 1, “failed”: 0 }, “_seq_no”: 0, “_primary_term”: 1}
5.3 查看全部文檔
http://127.0.0.1:9200/newsindex/news/_search,用Postman工具GET方式
返回結(jié)果:
{ “took”: 143, “timed_out”: false, “_shards”: { “total”: 5, “successful”: 5, “skipped”: 0, “failed”: 0 }, “hits”: { “total”: 1, “max_score”: 1.0, “hits”: [ { “_index”: “newsindex”, “_type”: “news”, “_id”: “s8OxK4IBouFOjM8f3Mc2”, “_score”: 1.0, “_source”: { “title”: “烏孫古道穿越天山山脈”, “content”: “烏孫古道穿越天山山脈,徒步線路北起新疆伊犁特克斯縣,南至新疆阿克蘇地區(qū)拜城縣,沿途可以看到高山草甸、峽谷、雪山、河流等,途中天堂湖的美景更是讓不少驢友向往。” } } ] }}
5.4 修改文檔
http://127.0.0.1:9200/newsindex/news/s8OxK4IBouFOjM8f3Mc2,用Postman工具PUT方式提交,選擇Body->raw、JSON
{“title”:”烏孫古道穿越天山山脈,烏孫古道穿越天山山脈”,”content”:”烏孫古道穿越天山山脈,徒步線路北起新疆伊犁特克斯縣,南至新疆阿克蘇地區(qū)拜城縣,沿途可以看到高山草甸、峽谷、雪山、河流等,途中天堂湖的美景更是讓不少驢友向往。”}
返回結(jié)果:
{ “_index”: “newsindex”, “_type”: “news”, “_id”: “s8OxK4IBouFOjM8f3Mc2”, “_version”: 2, “result”: “updated”, “_shards”: { “total”: 2, “successful”: 1, “failed”: 0 }, “_seq_no”: 1, “_primary_term”: 1}
如果ID不存在,則會創(chuàng)建文檔。
5.5 根據(jù)ID查詢
http://127.0.0.1:9200/newsindex/news/tcO_K4IBouFOjM8fgMcJ,用Postman工具GET方式
5.6 條件模糊查詢
http://127.0.0.1:9200/newsindex/news/_search?q=title:生活,用Postman工具GET方式
{ “took”: 5, “timed_out”: false, “_shards”: { “total”: 5, “successful”: 5, “skipped”: 0, “failed”: 0 }, “hits”: { “total”: 1, “max_score”: 0.5753642, “hits”: [ { “_index”: “newsindex”, “_type”: “news”, “_id”: “tcO_K4IBouFOjM8fgMcJ”, “_score”: 0.5753642, “_source”: { “title”: “寧靜喊你靜享生活”, “content”: “不得不說,寧靜散發(fā)出的底氣與睿智” } } ] }}
5.7 刪除
http://127.0.0.1:9200/newsindex/news/tMO-K4IBouFOjM8fUsdT,用Postman工具Delete方式
{ “_index”: “newsindex”, “_type”: “news”, “_id”: “tMO-K4IBouFOjM8fUsdT”, “_version”: 2, “result”: “deleted”, “_shards”: { “total”: 2, “successful”: 1, “failed”: 0 }, “_seq_no”: 3, “_primary_term”: 1}