Elasticsearch文檔索引基本操作增刪改查示例
接口冪等性
- 接口冪等性:數(shù)學(xué)概念,多次請(qǐng)求,相當(dāng)于一次請(qǐng)求
- get,put,delete都是冪等性的接口
- post 存在冪等性的問題
- 前端速度很快,點(diǎn)了兩次,會(huì)生成兩個(gè)訂單
- 用戶在訪問新增頁(yè)面時(shí)(提交訂單)---》接口返回一個(gè)唯一id,提交訂單,攜帶唯一id過來,后端判斷這個(gè)唯一id是否被用過---》沒用過,創(chuàng)建訂單
- 你在項(xiàng)目中碰到的問題和如何解決(項(xiàng)目收獲)下訂單,經(jīng)常重復(fù)訂單,點(diǎn)得快,冪等性問題,如何解決的
倒排索引
1.es介紹10個(gè)點(diǎn)
2.安裝
-jdk :java開發(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寫的)
- kibana跟es版本對(duì)應(yīng),bin路徑下,直接啟動(dòng)
- elasticsearch-head需要安裝node環(huán)境,npm install ---》npm run start
- kibana配置文件配置(copy一下,kibana監(jiān)聽的地址端口,隨便名一個(gè)名,連接es的地址)
- 修改es配置:允許跨域(瀏覽器的同源策略),cors:跨域資源共享,實(shí)現(xiàn)跨域
- es的倒排索引(擴(kuò)展閱讀.md)
- 把文章進(jìn)行分詞,對(duì)每個(gè)詞建立索引
3 索引操作
# 索引操作---》數(shù)據(jù)庫(kù)操作---》新增,刪除,修改,查詢
# 1 新增索引:
PUT lqz2 # lqz2就是索引名字
{
"settings": {
"index":{
"number_of_shards":5,
"number_of_replicas":1
}
}
}
# 2 查詢索引
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":["古典","小說"]
}
# 2 查詢文檔(更詳細(xì)的查找,后面講)
GET lqz2/_doc/2
# 3 修改文檔
-覆蓋式(原來的字段就沒有了)
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 文檔查詢
# 測(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":"膚白貌美,嬌憨可愛",
"tags":["白", "富","美"]
}
PUT lqz/doc/3
{
"name":"龍?zhí)灼?,
"age":22,
"from":"gu",
"desc":"mmp,沒怎么看,不知道怎么形容",
"tags":["造數(shù)據(jù)", "真","難"]
}
# 兩種方式
-第一種(字符串查詢)
GET lqz/doc/_search?q=from:gu
GET lqz/doc/_search?q=age:22
-查詢的第二種方式(結(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基于callable函數(shù)檢測(cè)對(duì)象是否可被調(diào)用
這篇文章主要介紹了Python基于callable函數(shù)檢測(cè)對(duì)象是否可被調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Python實(shí)現(xiàn)解析ini配置文件的示例詳解
在開發(fā)過程中,配置文件是少不了的,而且配置文件是有專門的格式的,比如:ini,?yaml,?toml?等等。而對(duì)于?Python?而言,也都有相應(yīng)的庫(kù)來解析相應(yīng)格式的文件,下面我們來看看?ini?文件要如何解析2022-09-09
python基于OpenCV模板匹配識(shí)別圖片中的數(shù)字
這篇文章主要介紹了python基于OpenCV模板匹配識(shí)別圖片中的數(shù)字,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03
Pycharm在指定目錄下生成文件和刪除文件的實(shí)現(xiàn)
這篇文章主要介紹了Pycharm在指定目錄下生成文件和刪除文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Python數(shù)據(jù)處理-導(dǎo)入導(dǎo)出excel數(shù)據(jù)
這篇文章主要介紹了Python數(shù)據(jù)處理-導(dǎo)入導(dǎo)出excel數(shù)據(jù),Python的一大應(yīng)用就是數(shù)據(jù)分析了,而數(shù)據(jù)分析中,經(jīng)常碰到需要處理Excel數(shù)據(jù)的情況。這里做一個(gè)Python處理Excel數(shù)據(jù)的總結(jié),需要的小伙伴可以參考一下2022-01-01
Python Opencv實(shí)現(xiàn)最強(qiáng)美顏濾鏡效果
這篇文章主要介紹了如何利用Python OpenCV制作一個(gè)強(qiáng)大的美顏濾鏡效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下2022-03-03

