前言
為什么學ElasticSearch?
數據一般有如下三種類型:
- 結構化數據,如:MySQL的表,一般通過索引提高查詢效率
- 非結構化數據,如:圖片、音頻等不能用表結構表示的數據,一般保存到mongodb、redis、hbase等非關系型數據庫,通過key-value查詢
- 半結構化數據,如:json、xml文件,一般保存到mongodb、redis、hbase等非關系型數據庫,通過key-value查詢
對于結構化數據而言,字段不容易擴展,且有些數據是非結構化的,如:日志,為了提高查詢效率,可以使用ElasticSearch
一、快速入門
1.1 Elasticsearch 介紹
Elaticsearch,簡稱為 ES, 是一個開源的高擴展的分布式全文搜索引擎, 是整個 ElasticStack 技術棧的核心。
全文搜索引擎:類似谷歌、百度、博客文章、還有日志的搜索,它們是根據網頁的關鍵字生成索引,我們輸入關鍵字時就會匹配到所有網頁并返回,而對于非結構化的數據文本,關系型數據庫不能很好的支持。
The Elastic Stack, 包括 Elasticsearch、 Kibana、 Beats 和 Logstash(也稱為 ELK Stack),能夠安全可靠地獲取任何來源、任何格式的數據,然后實時地對數據進行搜索、分析和可視化。
它可以近乎實時的存儲、檢索數據;本身擴展性很好,可以擴展到上百臺服務器,處理 PB 級別的數據。
1.2 安裝環境(以win10為例)
官方網址:https://www.elastic.co/cn/downloads/?elektra=home&storm=hero
elasticsearch新增數據
curl -X POST "http://localhost:9200/自定義索引名稱/_doc/自定義文檔id" -H 'Content-Type: application/json' -d'
{"field1": "value1","field2": "value2"
}
'
查詢數據
curl -X GET "http://localhost:9200/自定義索引名稱/_doc/自定義文檔id"
批量插入數據
curl -X POST "http://localhost:9200/_bulk?pretty" -H "Content-Type: application/json;charset=UTF-8" -d '
{"index":{"_index": "website", "_id":"1" }}
{"title1" : "My updated blog post"}
{"index":{"_index": "website", "_id":"2" }}
{"title2" : "My updated blog post123"}
'
Elasticsearch命令(curl)大全
https://blog.csdn.net/m0_37739193/article/details/78228876