成都網(wǎng)站建設(shè)哪家公司好網(wǎng)絡(luò)營銷策劃方案論文
文章目錄
- 1.索引庫操作
- 創(chuàng)建索引庫:
- 刪除索引庫:
- 查詢索引庫:
- 修改索引庫:
- 總結(jié)
- 2.文檔操作
- 創(chuàng)建文檔:
- 查詢文檔:
- 刪除文檔:
- 全量修改文檔:
- 增量修改文檔:
- 總結(jié)
- 3.DSL查詢語法(前4個(gè)由query屬性包裹)
- 1.全文查詢(3種)
- match_all
- match
- multi_match
- 2.精確查詢(2種)
- term
- range
- 3.地理查詢(2種)
- geo-bounding_box
- geo_distance
- 4.復(fù)合查詢(2種)
- function score Query
- Bool Query
- 5.搜索結(jié)果處理(3種)同級屬性
- sort排序
- from/size分頁
- higlight高亮
- 6.總結(jié)(4個(gè)頂級屬性)
1.索引庫操作
創(chuàng)建索引庫:
PUT /索引庫名
{"mapping":{"properties":{"字段名":{"type":"字段的類型"}//..略 }},
}//提高查詢效率的方式
//將字段名1、2加入到all,那么查詢直接搜索all一個(gè)字段效率提高2倍
PUT /索引庫名
{"mapping":{"properties":{"字段名1":{"type":"字段的類型","copy_to":"all"},"字段名2":{"type":"字段的類型","copy_to":"all"},"all":{"type":"text","analyzer":"ik_max_word"} }},
}
//搭配查詢使用
GET /索引庫名
{"query":{"match":{"all":"搜索內(nèi)容"}}
}
刪除索引庫:
DELETE /索引庫名
查詢索引庫:
GET /索引庫名
修改索引庫:
PUT /索引庫名/_mapping
{"properties":{"新字段名":{"type":"類型"}}
}
總結(jié)
只有創(chuàng)建、修改需要請求體
2.文檔操作
創(chuàng)建文檔:
POST /索引庫名/_doc/文檔id
{"字段1":"","字段2":"","字段3":{"字段3-1":"","字段3-2":""}
}
查詢文檔:
GET /索引名/_doc/文檔id
刪除文檔:
DELETE /索引庫名/_doc/文檔id
全量修改文檔:
//若文檔id不存在就是新增操作,否則就是全部修改PUT /索引庫名/ _doc/文檔id
{"字段1":"","字段2":""
}
增量修改文檔:
POST /索引庫名/ _update/文檔id
{"doc":{"需要修改的字段名":"新的值"}
}
總結(jié)
只有創(chuàng)建、修改需要請求體
3.DSL查詢語法(前4個(gè)由query屬性包裹)
1.全文查詢(3種)
match_all
// 1.查詢所有
GET /索引庫名/_search
{"query": {"match_all": {}}
}
match
// 2.單個(gè)字段查詢,建議創(chuàng)建文檔的時(shí)候把多個(gè)要查詢的字段copy_to到一個(gè)字段all,提高查詢性能
//all字段名
GET /索引庫名/_search
{"query": {"match": {"all": "鄉(xiāng)愁"}}
}
multi_match
// 3.多個(gè)字段查詢
GET /索引庫名/_search
{"query": {"multi_match": {"query": "需要查詢內(nèi)容","fields": ["字段1","字段2"]}}
}
2.精確查詢(2種)
term
# 1.根據(jù)詞條精確值查詢
GET /索引庫名/_search
{"query": {"term": {"字段名1": {"value": "內(nèi)容"}}}
}
range
# 2.根據(jù)值得范圍查詢
#有e結(jié)尾代表=
GET /mingyue/_search
{"query": {"range": {"age": {"gt": 10,"lte": 20}}}
}
3.地理查詢(2種)
geo-bounding_box
// 1.查詢geo_point值落在某個(gè)矩形范文內(nèi)得所有文檔,大白話就是兩個(gè)點(diǎn)相連形成的矩形
// 用的比較少
GET /索引庫名/_search
{"query":{"geo-bounding_box":{"geo_point類型的字段":{"top_left":{"lat":31.1,"lon":121.9},"buttom_right":{"lat":38.1,"lon":121.9}}}}
}
geo_distance
//2.查詢指定中心點(diǎn)范圍內(nèi)得所有文檔
// 用的多
GET /索引庫名/_search
{"query":{"geo_distance":{"distance":"15km","geo_point類型的字段":"經(jīng)度,緯度"}}
}
4.復(fù)合查詢(2種)
function score Query
// 1.function score Query
GET /索引庫名/_search
{"query":{"function_score":{# 原始查詢規(guī)則"query":{"match":{"字段名":"內(nèi)容"}},"functions":'[{"filter":{"term":{"id":"1"}},# 過濾條件"weight":10 #算分函數(shù)}],"boost_mode":"multiply" # 算分函數(shù)}}
}
Bool Query
// 2.Bool Query 4個(gè)屬性
GET /索引庫名/_search
{"query":{"bool":{"must":[#類似與{"term":{"字段名1":"內(nèi)容"}}],"should":[#類似或{"term":{"字段名2":"內(nèi)容1"}}{"term":{"字段名2":"內(nèi)容2"}}],"must_not":[#類似非,不參與算分,意思是不匹配<=500的{"range":{"字段名3":{"lte":500}}}],"filter":[#必須匹配>=45,不參與算分{"range":{"字段名4":{"gte":45}}}],}}
}
5.搜索結(jié)果處理(3種)同級屬性
sort排序
// 1.排序
GET /索引庫名/_search
{"query":{//查詢條件 略……},"sort":{"排序字段":"排序方式",# asc desc"_geo_distance":{"geo_point類型的字段名":"經(jīng)度,緯度","geo_point類型的字段名":{ # 對象方式書寫"lat":經(jīng)度"lon":緯度},"order":"排序方式","unit":"km"# 單位}}
}
from/size分頁
// 2.分頁
GET /索引庫名/_search
{"query":{//查詢條件 略……},"sort":{"排序字段":"排序方式",# asc desc},"from":頁碼,"size":條數(shù)
}
higlight高亮
// 2.高亮
GET /索引庫名/_search
{"query":{//查詢條件 略……},"sort":{"排序字段":"排序方式",# asc desc},"highlight":{"fields":{# 指定要高亮的字段"字段名":{"require_field_match":"false" #搜索字段與高亮字段不一致需要加上}}},"from":頁碼,"size":條數(shù)
}
6.總結(jié)(4個(gè)頂級屬性)
查詢語法有4個(gè)頂級屬性
分別是query、sort、from/size、highlight