Elasticsearch基礎(chǔ)之:通過(guò)Restful API操作數(shù)據(jù)

1语婴、上傳數(shù)據(jù)

PUT http://localhost:9200/megacorp/employee/1
請(qǐng)求body的內(nèi)容:

{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}

注:
也可以用以下命令來(lái)上傳數(shù)據(jù),
POST http://localhost:9200/megacorp/employee/
這個(gè)時(shí)候上傳之后的"_ID"就不像上面自定義的為1场航,而是由elasticsearch自動(dòng)生成ID青抛。
PUT方式相當(dāng)于是覆蓋數(shù)據(jù)蜜另,可以用來(lái)做修改操作

如果是批量上傳數(shù)據(jù),可以使用如下命令:
curl -XPOST 127.0.0.1:9200/bank/account/_bulk?pretty --data-binary @accounts.json
其中accounts.json 是一個(gè)json數(shù)據(jù)

2捣辆、查詢數(shù)據(jù)

{"_index":"megacorp","_type":"employee","_id":"1","_version":1,"found":true,"_source":{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}}
{"took":6,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":3,"max_score":1.0,"hits":[{"_index":"megacorp","_type":"employee","_id":"2","_score":1.0,"_source":{
    "first_name" :  "Jane",
    "last_name" :   "Smith",
    "age" :         32,
    "about" :       "I like to collect rock albums",
    "interests":  [ "music" ]
}},{"_index":"megacorp","_type":"employee","_id":"1","_score":1.0,"_source":{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}},{"_index":"megacorp","_type":"employee","_id":"3","_score":1.0,"_source":{
    "first_name" :  "Douglas",
    "last_name" :   "Fir",
    "age" :         35,
    "about":        "I like to build cabinets",
    "interests":  [ "forestry" ]
}}]}}
{
  "query" : {
        "match" : {
            "last_name" : "Smith"
        }
    },
  "_source":["first_name","last_name","age"],
  "from":0,
  "size":2,
  "sort":{"first_name":{"order":"desc"}}
}

其中:
from和size是起到分頁(yè)的作用嘁酿,sort是排序作用
_source代表結(jié)果只顯示這幾個(gè)字段


當(dāng)然還有更復(fù)雜的語(yǔ)法男应,例如增加filter:

{
    "query" : {
        "filtered" : {
            "filter" : {
                "range" : {
                    "age" : { "gt" : 30 }
                }
            },
            "query" : {
                "match" : {
                    "last_name" : "smith"
                }
            }
        }
    }
}

范圍操作符包含:
gt : 大于
gte : 大于等于
lt : 小于
lte : 小于等于

{
    "query" : {
        "match" : {
            "about" : "rock climbing"
        }
    }
}

以上查詢代表查詢about字段包含rock或者climbing的數(shù)據(jù)
如果要查詢about字段包含"rock climbing"整個(gè)字符串的數(shù)據(jù),那要這么查:

{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
        }
    }
}
  • 2.5众弓、bool搜索

POST http://localhost:9200/megacorp/employee/_search
請(qǐng)求body如下:

{
  "query" : {
    "bool":{
        "must":[
          {"match" : {"first_name" : "Jane"}},
          {"match" : {"last_name" : "Smith"}}
          ]
    }
  }
}

返回的結(jié)果只包含Jane Smith
其中:
1谓娃、must是代表必須同時(shí)滿足蜒滩,相當(dāng)于&&
2奶稠、如果must改成should锌订,代表有一個(gè)滿足就可以画株,相當(dāng)于||,得到的結(jié)果是John Smith和Jane Smith
3蜈项、如果must改成must_not续挟,代表兩個(gè)都不滿足诗祸,得到的結(jié)果是Douglas Fir

{
    "aggs" : {
        "all_interests" : {
            "terms" : { "field" : "interests" },
            "aggs" : {
                "avg_age" : {
                    "avg" : { "field" : "age" }
                }
            }
        }
    }
}

其中博个,terms是分組操作功偿,相當(dāng)于group by脖含。

返回結(jié)果:

{
...,
"aggregations": {
        "all_interests": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "music",
                    "doc_count": 2,
                    "avg_age": {
                        "value": 28.5
                    }
                },
                {
                    "key": "forestry",
                    "doc_count": 1,
                    "avg_age": {
                        "value": 35
                    }
                },
                {
                    "key": "sports",
                    "doc_count": 1,
                    "avg_age": {
                        "value": 25
                    }
                }
            ]
        }
    }

}

3投蝉、刪除數(shù)據(jù)

DELETE http://localhost:9200/megacorp/employee/123

總結(jié)

索引操作的命令如下:

1瘩缆、獲取索引 
curl -XGET ‘[http://localhost:9200/](http://localhost:9200/){index}/{type}/{id}’ 
2、索引數(shù)據(jù) 
curl -XPOST ‘[http://localhost:9200/](http://localhost:9200/){index}/{type}/{id}’ -d’{“a”:”avalue”,”b”:”bvalue”}’ 
3着绊、刪除索引 
curl -XDELETE ‘[http://localhost:9200/](http://localhost:9200/){index}/{type}/{id}’ 
4归露、設(shè)置mapping

curl -XPUT [http://localhost:9200/](http://localhost:9200/){index}/{type}/_mapping -d ‘{ 
“{type}” : { 
“properties” : { 
“date” : { 
“type” : “l(fā)ong” 
}, 
“name” : { 
“type” : “string”, 
“index” : “not_analyzed” 
}, 
“status” : { 
“type” : “integer” 
}, 
“type” : { 
“type” : “integer” 
} 
} 
} 
}’ 
5斤儿、獲取mapping 
curl -XGET [http://localhost:9200/](http://localhost:9200/){index}/{type}/_mapping 
6恐锦、搜索

curl -XGET ‘[http://localhost:9200/](http://localhost:9200/){index}/{type}/_search’ -d ‘{ 
“query” : { 
“term” : { “user” : “kimchy” } //查所有 “match_all”: {} 
}, 
“sort” : [{ “age” : {“order” : “asc”}},{ “name” : “desc” } ], 
“from”:0, 
“size”:100 
} 
curl -XGET ‘[http://localhost:9200/](http://localhost:9200/){index}/{type}/_search’ -d ‘{ 
“filter”: {“and”:{“filters”:[{“term”:{“age”:”123”}},{“term”:{“name”:”張三”}}]}, 
“sort” : [{ “age” : {“order” : “asc”}},{ “name” : “desc” } ], 
“from”:0, 
“size”:100 
}

參考

elasticsearch 通過(guò)HTTP RESTful API 操作數(shù)據(jù)
https://es.xiaoleilu.com/010_Intro/25_Tutorial_Indexing.html
使用curl命令操作elasticsearch And 使用http 查詢ES

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市潘飘,隨后出現(xiàn)的幾起案子掉缺,更是在濱河造成了極大的恐慌,老刑警劉巖暴凑,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件现喳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡嗦篱,警方通過(guò)查閱死者的電腦和手機(jī)幌缝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門涵卵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人典鸡,你說(shuō)我怎么就攤上這事坏晦。” “怎么了球碉?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵睁冬,是天一觀的道長(zhǎng)看疙。 經(jīng)常有香客問(wèn)我搂蜓,道長(zhǎng)帮碰,這世上最難降的妖魔是什么拾积? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任拓巧,我火速辦了婚禮,結(jié)果婚禮上傻唾,老公的妹妹穿的比我還像新娘承耿。我一直安慰自己,他們只是感情好凛辣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布扁誓。 她就那樣靜靜地躺著蚀之,像睡著了一般。 火紅的嫁衣襯著肌膚如雪前普。 梳的紋絲不亂的頭發(fā)上壹堰,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天贱纠,我揣著相機(jī)與錄音响蕴,去河邊找鬼浦夷。 笑死辜王,一個(gè)胖子當(dāng)著我的面吹牛罐孝,可吹牛的內(nèi)容都是我干的莲兢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼收班,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼摔桦!你這毒婦竟也來(lái)了承疲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赊豌,失蹤者是張志新(化名)和其女友劉穎碘饼,沒想到半個(gè)月后悲伶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钠绍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年柳爽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碱屁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娩脾。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖俩功,靈堂內(nèi)的尸體忽然破棺而出诡蜓,到底是詐尸還是另有隱情,我是刑警寧澤罗珍,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布脚粟,位于F島的核電站,受9級(jí)特大地震影響核无,放射性物質(zhì)發(fā)生泄漏扣唱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一团南、第九天 我趴在偏房一處隱蔽的房頂上張望噪沙。 院中可真熱鬧,春花似錦吐根、人聲如沸正歼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)局义。三九已至,卻和暖如春冗疮,著一層夾襖步出監(jiān)牢的瞬間萄唇,已是汗流浹背术幔。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工另萤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诅挑。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓四敞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親拔妥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子忿危,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一、環(huán)境搭建 軟件版本: Linux:centos7 64bit JDK:1.8.0 elasticsearch:...
    lailai900201閱讀 3,580評(píng)論 0 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理毒嫡,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • ElasticSearch(以下簡(jiǎn)稱ES)是一個(gè)基于Apache Lucene(TM)的開源搜索引擎兜畸。無(wú)論在開源還...
    Watson_Xu閱讀 203評(píng)論 0 2
  • ListView的優(yōu)化https://github.com/sghiassy/react-native-sglis...
    精神病患者link常閱讀 4,659評(píng)論 0 22
  • 2017年的最后一天努释,我榮幸的加入了007這個(gè)大家庭。提起筆準(zhǔn)備寫文章的時(shí)候咬摇,突然發(fā)現(xiàn)自己好詞窮伐蒂,感覺自己腦海中一...
    石頭愛湉江閱讀 154評(píng)論 0 1