Elasticsearch文檔索引基本操作增刪改查示例
接口冪等性
- 接口冪等性:數(shù)學(xué)概念,多次請(qǐng)求,相當(dāng)于一次請(qǐng)求
- get,put,delete都是冪等性的接口
- post 存在冪等性的問(wèn)題
- 前端速度很快,點(diǎn)了兩次,會(huì)生成兩個(gè)訂單
- 用戶在訪問(wèn)新增頁(yè)面時(shí)(提交訂單)---》接口返回一個(gè)唯一id,提交訂單,攜帶唯一id過(guò)來(lái),后端判斷這個(gè)唯一id是否被用過(guò)---》沒(méi)用過(guò),創(chuàng)建訂單
- 你在項(xiàng)目中碰到的問(wèn)題和如何解決(項(xiàng)目收獲)下訂單,經(jīng)常重復(fù)訂單,點(diǎn)得快,冪等性問(wèn)題,如何解決的
倒排索引
1.es介紹10個(gè)點(diǎn)
2.安裝
-jdk :java開(kāi)發(fā)環(huán)境
- 官網(wǎng)下載es相應(yīng)的版本,解壓,到bin目錄下啟動(dòng)elasticsearch.bat
- 兩個(gè)客戶端(kibana:官方,發(fā)送請(qǐng)求,數(shù)據(jù)統(tǒng)計(jì),展示,elasticsearch-head:第三方用node寫(xiě)的)
- kibana跟es版本對(duì)應(yīng),bin路徑下,直接啟動(dòng)
- elasticsearch-head需要安裝node環(huán)境,npm install ---》npm run start
- kibana配置文件配置(copy一下,kibana監(jiān)聽(tīng)的地址端口,隨便名一個(gè)名,連接es的地址)
- 修改es配置:允許跨域(瀏覽器的同源策略),cors:跨域資源共享,實(shí)現(xiàn)跨域
- es的倒排索引(擴(kuò)展閱讀.md)
- 把文章進(jìn)行分詞,對(duì)每個(gè)詞建立索引
3 索引操作
# 索引操作---》數(shù)據(jù)庫(kù)操作---》新增,刪除,修改,查詢(xún)
# 1 新增索引:
PUT lqz2 # lqz2就是索引名字
{
"settings": {
"index":{
"number_of_shards":5,
"number_of_replicas":1
}
}
}
# 2 查詢(xún)索引
GET lqz2/_settings
返回結(jié)果
{
"lqz2" : {
"settings" : {
"index" : {
"creation_date" : "1588822389842",
"number_of_shards" : "1",
"number_of_replicas" : "1",
"uuid" : "NBXIeVdHQ26vCuPn8_6uew",
"version" : {
"created" : "7050099"
},
"provided_name" : "lqz2"
}
}
}
}
# 3 更新索引
PUT lqz2/_settings
{
"number_of_replicas": 2
}
#4 刪除lqz2索引
DELETE lqz2
4 文檔基本增刪查改
#1 新增文檔
POST lqz2/_doc/1
{
"title":"紅樓夢(mèng)",
"price":12,
"publish_addr":{
"province":"黑龍江",
"city":"鶴崗"
},
"publish_date":"2013-11-11",
"read_num":199,
"tag":["古典","名著"]
}
POST lqz2/_doc/2
{
"title":"西游記",
"price":22,
"publish_addr":{
"province":"上海",
"city":"上海"
},
"publish_date":"2013-11-11",
"read_num":66,
"tag":["古典","小說(shuō)"]
}
# 2 查詢(xún)文檔(更詳細(xì)的查找,后面講)
GET lqz2/_doc/2
# 3 修改文檔
-覆蓋式(原來(lái)的字段就沒(méi)有了)
PUT lqz/_doc/1
{
"title":"xxxx",
"price":333,
"publish_addr":{
"province":"黑龍江",
"city":"福州"
}
}
-增量式(只修改某個(gè)字段)一定要注意包在doc中
POST lqz2/_doc/1/_update
{
"doc":{
"title":"xx"
}
}
# 4 刪除文檔
DELETE lqz/_doc/1
# 5 批量獲取
GET _mget
{
"docs":[
{
"_index":"lqz2",
"_type":"_doc",
"_id":2
},
{
"_index":"lqz2",
"_type":"_doc",
"_id":1
}
]
}
# 6 批量插入
PUT test/_doc/2/_create
{
"field1" : "value22"
}
POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_id" : "2" } }
{ "create" : { "_index" : "test", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }
5 文檔查詢(xún)
# 測(cè)試數(shù)據(jù)
PUT lqz/doc/1
{
"name":"顧老二",
"age":30,
"from": "gu",
"desc": "皮膚黑、武器長(zhǎng)、性格直",
"tags": ["黑", "長(zhǎng)", "直"]
}
PUT lqz/doc/2
{
"name":"大娘子",
"age":18,
"from":"sheng",
"desc":"膚白貌美,嬌憨可愛(ài)",
"tags":["白", "富","美"]
}
PUT lqz/doc/3
{
"name":"龍?zhí)灼?,
"age":22,
"from":"gu",
"desc":"mmp,沒(méi)怎么看,不知道怎么形容",
"tags":["造數(shù)據(jù)", "真","難"]
}
# 兩種方式
-第一種(字符串查詢(xún))
GET lqz/doc/_search?q=from:gu
GET lqz/doc/_search?q=age:22
-查詢(xún)的第二種方式(結(jié)構(gòu)化)
GET lqz/doc/_search
{
"query": {
"match": {
"from": "gu"
}
}
}
GET lqz/doc/_search
{
"query": {
"match": {
"age": 22
}
}
}
GET lqz/doc/_search
{
"query": {
"match": {
"desc": "形容"
}
}
}
GET lqz/doc/_search
{
"query": {
"match": {
"tags": "造數(shù)據(jù)"
}
}
}以上就是Elasticsearch文檔索引基本操作增刪改查示例的詳細(xì)內(nèi)容,更多關(guān)于Elasticsearch文檔索引增刪改查的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫(kù)全流程
SQL Server是微軟推出的重量級(jí)的數(shù)據(jù)庫(kù),目前有多個(gè)版本,如2000、2008、2012等,下面這篇文章主要給大家介紹了關(guān)于Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2023-12-12
filter使用python3代碼進(jìn)行迭代元素的實(shí)例詳解
在本篇文章里小編給大家整理了關(guān)于filter使用python3代碼進(jìn)行迭代元素的實(shí)例詳解內(nèi)容,有興趣的朋友們可以參考下。2020-12-12
Python 轉(zhuǎn)換文本編碼實(shí)現(xiàn)解析
這篇文章主要介紹了Python 轉(zhuǎn)換文本編碼實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值2019-08-08
pycharm通過(guò)ssh連接遠(yuǎn)程服務(wù)器教程
今天小編就為大家分享一篇pycharm通過(guò)ssh連接遠(yuǎn)程服務(wù)器教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Python統(tǒng)計(jì)時(shí)間內(nèi)的并發(fā)數(shù)代碼實(shí)例
這篇文章主要介紹了Python統(tǒng)計(jì)時(shí)間內(nèi)的并發(fā)數(shù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
python爬蟲(chóng)模擬瀏覽器訪問(wèn)-User-Agent過(guò)程解析
這篇文章主要介紹了python爬蟲(chóng)模擬瀏覽器訪問(wèn)-User-Agent過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Python利用VideoCapture讀取視頻或攝像頭并進(jìn)行保存
這篇文章主要為大家介紹一下OpenCV中cv2.VideoCapture函數(shù)的使用,并利用cv2.VideoCapture讀取視頻或攝像頭以及進(jìn)行保存幀圖像或視頻,感興趣的小伙伴可以了解一下2022-07-07

