Elasticsearch 安裝請參考 搭建ELK日志管理平臺 - - 2 ElasticSearch部署
01 創(chuàng)建索引
curl -XPUT 172.16.255.131:9200/vipinfo # 創(chuàng)建數(shù)據(jù)庫
curl -XPUT 172.16.255.131:9200/vipinfo?pretty # json格式返回輸出
- 主節(jié)點(diǎn):默認(rèn)配置是1個(gè)分片1個(gè)副本
-
主數(shù)據(jù)分片: 數(shù)據(jù)在分片中被分組存儲,例如如果分片是3個(gè)的話,存入數(shù)據(jù)
hello
可能被拆分存儲在這幾個(gè)分片之中 - 副本數(shù)據(jù)分片: 對數(shù)據(jù)分片的拷貝
- 集群健康值: 黃色表示當(dāng)前配置不滿足默認(rèn)配置,但是存儲的數(shù)據(jù)是完整的
設(shè)置索引的分片與備份:
例如創(chuàng)建索引配置為分為5個(gè)分片,每個(gè)分片1個(gè)副本的語句如下:
curl -XPUT '172.16.255.131:9200/logsys?pretty' -H 'Content-Type:application/json' -d'{"settings": { "index": {"number_of_shards": 5, "number_of_replicas": 1}}}'
值得注意的是,在創(chuàng)建索引時(shí),索引名不能包含大寫字母。
02 插入文檔數(shù)據(jù)
往user類型中插入3條json格式的數(shù)據(jù),/user/1
主鍵id不能重復(fù),如果不指定id會隨機(jī)生成id
ES相較于MySql的特點(diǎn) :ES在插入數(shù)據(jù)時(shí)不需要預(yù)先創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表,在插入過程中如果數(shù)據(jù)庫或表不存在,則直接根據(jù)插入語句中/vipinfo/user/
創(chuàng)建對應(yīng)的數(shù)據(jù)庫和表。
插入數(shù)據(jù)提高性能的一種操作方式:ES的特點(diǎn)之一隨機(jī)id機(jī)制不會出現(xiàn)重復(fù)情況,所以在插入數(shù)據(jù)時(shí)不自己指定主鍵id,這樣可以直接避免在插入數(shù)據(jù)過程中進(jìn)行主鍵id判斷的性能損耗。使用隨機(jī)主鍵的一個(gè)缺點(diǎn)就是給查詢帶來困難,一種解決方案就是在插入的數(shù)據(jù)中單獨(dú)設(shè)置一個(gè)類似于MySql中主鍵的字段自定義主鍵id,便于查詢操作。
curl -XPUT '172.16.255.131:9200/vipinfo/user/1?pretty' -H 'Content-Type: application/json' -d'
{
"first_name": "Wang",
"last_name": "Haihua",
"age": 25,
"about": "I love you",
"interests": ["basketball","music"]
}'
curl -XPUT '172.16.255.131:9200/vipinfo/user/2?pretty' -H 'Content-Type: application/json' -d'
{
"first_name": "Wang",
"last_name": "Haihua",
"age": 25,
"about": "I love you",
"interests": ["basketball","music"]
}'
curl -XPUT '172.16.255.131:9200/vipinfo/user/3?pretty' -H 'Content-Type: application/json' -d'
{
"first_name": "Wang",
"last_name": "Haihua",
"age": 25,
"about": "I love you",
"interests": ["basketball","music"]
}'
03 查詢數(shù)據(jù)
- 在ES-head插件中查詢:實(shí)時(shí)查詢,直接在對應(yīng)字段進(jìn)行關(guān)鍵詞查詢
-
查詢索引所有數(shù)據(jù):使用 GET 方法,然后增加
_search
命令查詢索引中所有數(shù)據(jù)
curl -XGET 172.16.255.131:9200/vipinfo/_search?pretty
- 根據(jù)主鍵id查詢文檔數(shù)據(jù):使用 GET 方法,并指定類型和主鍵id查詢對應(yīng)數(shù)據(jù)
curl -XGET 172.16.255.131:9200/vipinfo/user/1?pretty
-
根據(jù)指定條件查詢文檔數(shù)據(jù):使用 GET 方法,并使用
_search
命令和類似于MySql中的where的命令q=type_name
傳查詢條件參數(shù)
curl -XGET '172.16.255.131:9200/vipinfo/user/_search?p=first_name:Wang&pretty'
curl -XGET '172.16.255.131:9200/vipinfo/user/_search?p=age:25&pretty'
- 使用Query-string查詢:可用于多條件查詢
curl -XPUT '172.16.255.131:9200/vipinfo/user/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"first_name": "Wang"
}
}
}'
curl -XPUT '172.16.255.131:9200/vipinfo/user/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"bool": {
"must": {
"match": {
"first_name": "Wang"
}
},
"filter": {
"range": {
"age": {"lt": 30}
}
}
}
}
}'
- 更加簡單的查詢-使用工具:直接使用ES-head插件進(jìn)行查詢,可以設(shè)置多個(gè)條件,直接避免了復(fù)雜繁瑣的命令語句查詢
文章來源:http://www.zghlxwxcb.cn/news/detail-414928.html
04 修改文檔數(shù)據(jù)
- PUT方法更新:需要和插入一樣填寫完整的信息
curl -XPUT '172.16.255.131:9200/vipinfo/user/1?pretty' -H 'Content-Type: application/json' -d'
{
"first_name": "Wang",
"last_name": "Haihua",
"age": 30,
"about": "I love you",
"interests": ["basketball","music"]
}'
- POST方法更新:只需要填寫需要更改的信息,但是可能出現(xiàn)其他數(shù)據(jù)被覆蓋的情況
curl -XPOST '172.16.255.131:9200/vipinfo/user/1?pretty' -H 'Content-Type: application/json' -d'
{
"age": 30
}'
-
更加簡單的修改-使用工具:直接使用ES-head插件的復(fù)合查詢功能進(jìn)行修改,可以反復(fù)使用,減少重復(fù)工作
05 刪除數(shù)據(jù)
- DELETE方法刪除數(shù)據(jù):直接使用DELETE方法刪除文檔數(shù)據(jù)或者整個(gè)索引
curl -XPUT '172.16.255.131:9200/vipinfo/uesr/1?pretty'
curl -XPUT 172.16.255.131:9200/vipinfo?pretty
- 更加簡單的刪除-使用工具:直接使用ES-head插件的復(fù)合查詢功能進(jìn)行刪除,可以反復(fù)使用,減少重復(fù)工作
文章來源地址http://www.zghlxwxcb.cn/news/detail-414928.html
到了這里,關(guān)于Elasticsearch 基礎(chǔ)操作與 ES-head 插件的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!