ElasticSearch+Kibana(7.13.1) 簡單操作


#創建簡單索引,number_of_shards分片數量,number_of_replicas副本數量
PUT /users
{
   "settings" : {
      "number_of_shards" : 3,
      "number_of_replicas" : 1
   }
}

#查看setting
GET users/_settings

#查看mapping
GET users/_mapping


#創建索引並添加數據
#也用來更新整個文檔,若已有id為1的數據,es會將原文檔標記為已刪除狀態,並新增id為1的新文檔,
#原文檔並不會立即消失,但是卻無法訪問,在后續檢索操作過程中,ES會慢慢處理這些已刪除數據
PUT starts/_doc/1
{
    "first_name" : "xiao",
    "last_name" :  "zhan",
    "age" :        31,
    "about" :      "A handsome boy.",
    "interests": [ "actors", "singer" ]
}

PUT starts/_doc/2
{
    "first_name" : "zhang",
    "last_name" :  "zhehan",
    "age" :        31,
    "about" :      "Another handsome boy.",
    "interests": [ "actors", "singer" ]
}

#更新部分文檔
#es會先根據id為1的文檔構建新JSON,然后更新整個JSON,之后會對原文檔進行標記刪除,並且構建新文檔
POST starts/_update/1
{
  "doc":{
    "age" : 32
    
  }
}

#更新部分文檔,使用腳本
POST starts/_update/1
{
  "script":"ctx._source.age=ctx._source.age+1"
}


#創建新文檔,不指定ID
POST starts/_doc
{
    "first_name" : "gong",
    "last_name" :  "jun",
    "age" :        30,
    "about" :      "A very good friend of Zhang Zhehan.",
    "interests": [ "actors", "gamer" ]
}

#創建新文檔,指定ID
POST starts/_doc/6
{
    "first_name" : "gong",
    "last_name" :  "jun",
    "age" :        30,
    "about" :      "A very good friend of Zhang Zhehan.",
    "interests": [ "actors", "gamer" ]
}

#刪除文檔
DELETE starts/_doc/6

#查看索引文檔的內容
GET starts/_search
{
    "query": {
        "match_all": {}
    }
}

#查看索引文檔的數量
GET starts/_count
{
    "query": {
        "match_all": {}
    }
}

#獲取某一個文檔信息
GET starts/_doc/1

#獲取某一個文檔的_source字段
GET starts/_source/1


#獲取first_name為zhang的文檔信息
GET starts/_search?q=first_name:zhang


#使用查詢表達式獲取first_name為xiao的文檔信息
GET starts/_search
{
    "query" : {
        "match" : {
            "first_name" : "xiao"
        }
    }
}

#增加first_name為zhang的文檔
PUT starts/_doc/3
{
    "first_name" : "zhang",
    "last_name" :  "mingyu",
    "age" :        25,
    "about" :      "My boyfriend.",
    "interests": [ "programmer", "gamer" ]
}

PUT starts/_doc/4
{
    "first_name" : "zhang",
    "last_name" :  "dejun",
    "age" :        8,
    "about" :      "The son of gongjun and zhangzhehan.",
    "interests": [ "programmer", "gamer" ]
}

#含過濾器的查詢,年齡大於30的first_name為zhang的文檔信息
GET starts/_search
{
    "query" : {
        "bool": {
            "must": {
                "match" : {
                    "first_name" : "zhang" 
                }
            },
            "filter": {
                "range" : {
                    "age" : { "gt" : 30 } 
                }
            }
        }
    }
}

#全文檢索,分詞檢索,結果按相關度自動降序排列
GET starts/_search
{
    "query" : {
        "match" : {
            "about" : "a handsome boy"
        }
    }
}


#短語檢索
GET starts/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "handsome boy"
        }
    }
}

#短語檢索,對比全文檢索
GET starts/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "a handsome boy"
        }
    }
}

#高亮檢索
GET starts/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "handsome"
        }
    },
    "highlight": {
        "fields" : {
            "about" : {}
        }
    }
}

#高亮檢索,自定義高亮標簽
GET starts/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "handsome"
        }
    },
    "highlight": {
        "pre_tags" : ["<tag1>"],
        "post_tags" : ["</tag1>"],
        "fields" : {
            "about" : {}
        }
    }
}

#聚合,被聚合的字段
GET starts/_search
{
  "aggs": {
    "all_interests": {
      "terms": { "field": "interests.keyword" }
    }
  }
}

#聚合+全文檢索
GET starts/_search
{
  "query": {
    "match": {
      "first_name": "zhang"
    }
  },
  "aggs": {
    "all_interests": {
      "terms": {
        "field": "interests.keyword"
      }
    }
  }
}

#聚合+分級匯總
GET starts/_search
{
    "query": {
      "match": {
        "first_name": "zhang"
      }
    },
    "aggs" : {
        "all_interests" : {
            "terms" : { "field" : "interests.keyword" },
            "aggs" : {
                "avg_age" : {
                    "avg" : { "field" : "age" }
                }
            }
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM