1. 檢視基本配置#
1.1 檢視配置#
Copy# 擷取單個index(庫的配置)
GET /index/_settings
# 擷取全部配置,全部庫的配置
GET /_settings/_all
1.2 檢視所有索引#
CopyGET /_cat/indices?v
1.2 檢視索引中所有字段#
CopyGET /index/type/_mapping
2. query DSL(Domain Sepcified Language)#
2.1 簡單查詢#
CopyGET /index/type/_search?q=id:300421
2.2 擷取所有記錄#
Copy# 擷取所有記錄
POST /index/type/_search
{
"query":{"match_all":{}}
}
# 查詢 es 中所有的文檔,并按照某一個條件排序
GET /index/type/_search?q=*&sort=_id:asc&pretty
2.3 根據條件查詢#
CopyGET /index/type/_search
{
"query":{
"match":{
"name":"zhangsan"
}
},
"sort":[
{
"age":"desc"
}
]
}
2.4 分頁查詢#
CopyGET /index/type/_search
{
"query":{"match_all":{}},
"from":1,
"size":2
}
2.5 指定查詢結果的字段#
CopyGET /index/type/_search
{
"query":{"match_all":{}},
"_source":["name","age"]
}
2.6 query filter#
CopyGET /index/type/_search
{
"query":{
"bool":{
"must":{
"match":{
"name":"zhangsan"
}
},
"filter":{
"range":{
"age":{"gt":25}
}
}
}
},
"sort":[
{
"age":"desc"
}
]
}
2.7 full-text search#
CopyGET /index/type/_search
{
"query":{
"match":{
"name":"zhangsan"
}
}
}
2.8 phrase search(短語搜尋:完全比對)#
CopyGET /index/type/_search
{
"query":{
"match_phrase":{
"name":"zhangsan"
}
}
}
2.9 highlight search(高亮搜尋)#
CopyGET /index/type/_search
{
"query":{
"match_phrase":{
"name":"zhangsan"
}
} ,
"highlight":{
"fields":{
"name":{}
}
}
}
3.新增資料#
3.1 插入資料:指定id#
CopyPUT /index/type/1
{
"name": "張三",
"age": 20,
"date": "2019-10-29"
}
3.2 插入資料:使用es預設建立的id#
CopyPOST /index/type
{
"name": "李四",
"age": 29,
"date": "2019-10-31"
}
4.修改資料#
4.1 向已有索引中添加新字段#
CopyPUT /index/type/_mapping
{
"properties": {
"name": {
"type": "text", # 這裡為增量更新,原有字段一定要保留,否則失敗
"fields": { # 新增的部分
"standard": {
"type": "text",
"analyzer": "standard"
}
},
"analyzer": "my_ik_max_word",
"search_analyzer": "my_ik_smart"
}
}
4.2 批量更新某個字段的值#
CopyPOST /index/type/_update_by_query
{
"script": {
"inline": "ctx._source.name = params.name;ctx._source.age=params.name",
"params": {
"name": "zhangsan",
"age": ctx._source.age + 1 # 這裡也可以為通過本字段中某個值通過計算後再指派
},
"lang": "painless" # painless 高性能模式
},
"query": { # 這裡為篩選條件,會更新滿足條件的值,不寫或match_all會更新全部
"terms": {
"_id": ["1"]
}
}
}
5. 删除資料#
5.1 删除指定id#
CopyPOST /index/type/_delete_by_query
{
"query": {
"terms": {
"_id": ["123"]
}
}
}
備注:這裡隻寫了部分情況的,後續會根據學習工作過程中遇到的新需求不斷補充完善。