首頁 > 後端開發 > php教程 > 總結ElasticSearch基本運算!非常詳細!

總結ElasticSearch基本運算!非常詳細!

藏色散人
發布: 2023-04-11 09:04:02
轉載
6397 人瀏覽過

es下載位址
IK分詞器下載位址

索引

  • 建立索引
     比較關係型資料庫,建立索引就等同建立資料庫
      PUT请求
      http://127.0.0.1:9200/shopping
    登入後複製
  • 查詢索引
      GET请求
      http://127.0.0.1:9200/shopping
    登入後複製
  • 查詢所有索引
      GET请求
      http://127.0.0.1:9200/_cat/indices?v
    登入後複製
  • 刪除索引
      DELETE请求
      http://127.0.0.1:9200/shopping
    登入後複製

#文檔

索引已經創建好了,接下來我們建立文檔,並新增資料。這裡的文件可以類比為關係型資料庫中的表數據,新增的資料格式為JSON格式

  • #建立文件

      POST请求
      http://127.0.0.1:9200/shopping/_doc #写法一
      http://127.0.0.1:9200/shopping/_create # 写法二  {"name":"商品"}
    登入後複製
      PUT请求,主键必须幂等性
      http://127.0.0.1:9200/shopping/_doc/1001 #写法一
      http://127.0.0.1:9200/shopping/_create/1002 # 写法二  {"name":"商品"}
    登入後複製
      POST请求 ,创建自定义id
      http://127.0.0.1:9200/shopping/_doc/1001
    登入後複製
  • ##主鍵查詢

      GET请求
      http://127.0.0.1:9200/shopping/_doc/1001
    登入後複製
  • 全查詢

      GET请求
      http://127.0.0.1:9200/shopping/_search
    登入後複製
  • #全量修改

      PUT请求
      http://127.0.0.1:9200/shopping/_doc/1001
      {"name":"商品"}
    登入後複製
  • 局部修改

      POST请求
      http://127.0.0.1:9200/shopping/_update/1001
      {"doc":{"name":"局部修改商品"}}
    登入後複製
  • 刪除

      DELETE请求
      http://127.0.0.1:9200/shopping/_doc/1001
    登入後複製
    查詢

  • 條件查詢

      GET请求,方法一
      http://127.0.0.1:9200/shopping/_search?q=category:小米
      http://127.0.0.1:9200/shopping/_search?q=name:商品
    登入後複製
      GET请求,方法二(推荐)
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match":{
                  "category":"小米"
              }
          }
      }
    登入後複製
  • 全量查詢

    #

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          }
      }
    登入後複製
  • 分頁查詢(from,size)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          },
          "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条  }
    登入後複製
  • #指定field分頁查詢(_source)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          },
          "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条      "_source":["title"]
      }
    登入後複製
    查詢排序(sort)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_all":{
              }
          },
          "from":0,#起始位置/偏移量 ,公式:(页码-1)* 每页数据条数      "size":10,#每页查询10条      "_source":["title"],
          "sort":{
              "price":{
                  "order":"desc"
              }
          }
      }
    登入後複製

    多條件查詢

  • and查詢(must)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "bool":{
                  "must":[ 
                      {
                          "match":{
                              "category":"小米"
                          }
                      },
                      {
                          "match":{
                              "price":1999.00
                          }
                      }
                  ]
              }
          }
      }
    登入後複製
  • or查詢(should)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "bool":{
                  "should":[ 
                      {
                          "match":{
                              "category":"小米"
                          }
                      },
                      {
                          "match":{
                              "price":1999.00
                          }
                      }
                  ]
              }
          }
      }
    登入後複製
  • 範圍查詢(filter,range)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "bool":{
                  "should":[
                      {
                          "match":{
                              "category":"小米"
                          }
                      },
                      {
                          "match":{
                              "price":1999.00
                          }
                      }
                  ],
                  "filter":{
                      "range":{
                          "price":{
                              "gt":5000
                          }
                      }
                  }
              }
          }
      }
    登入後複製
  • 全文檢索符合(分詞)(match)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match":{
                  "category": "小华"
              }
          }
      }
    登入後複製
  • #完全符合(match_phrase)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_phrase":{
                  "category": "小华"
              }
          }
      }
    登入後複製
  • 高亮查詢(hightlight,對結果加上html標籤)

      GET请求
      http://127.0.0.1:9200/shopping/_search  {
          "query":{
              "match_phrase":{
                  "category": "小华"
              }
          },
          "hightlight":{
              "fields":{
                  "category":{}
              }
          }
      }
    登入後複製
    聚合查詢

  • 傳回統計資料和原始資料

      GET请求
      http://127.0.0.1:9200/shopping/_search  { 
          "aggs":{ #聚合操作          "price_group":{ #名称,随意起名              "terms":{ #分组                  "field":"price" #分组字段              }
              }
          },  }
    登入後複製

  • 關閉原始資料(size)
  •   GET请求
      http://127.0.0.1:9200/shopping/_search      { 
          "aggs":{ #聚合操作          "price_group":{ #名称,随意起名              "terms":{ #分组                  "field":"price" #分组字段              }
              }
          },      "size":0
      }
    登入後複製

  • 平均值##
  GET请求
  http://127.0.0.1:9200/shopping/_search      { 
      "aggs":{ #聚合操作          "price_avg":{ #名称,随意起名              "age":{ #平均值                  "field":"price" #分组字段              }
          }
      },      "size":0
  }
登入後複製
  • 映射關係

  • 建立映射

      PUT请求
      http://127.0.0.1:9200/user/_mapping  { 
          "properties":{
              "name":{
                  "type":"text", #全文检索分词查询              "index":true
              },
              "sex":{
                  "type":"keyword",#完全查询              "index":true
              },
              "tel":{
                  "type":"keyword",#不能查询              "index":false
              }
          }
      }
    登入後複製
  • #查詢對應

      GET请求
      http://127.0.0.1:9200/user/_mapping
    登入後複製
  • 增加資料## #
      PUT请求
      http://127.0.0.1:9200/user/_create/1001
      {
          name:"小米",
          sex:"男的",
          tel:"10010"
      }
    登入後複製
    #########查詢資料###
      GET请求
      http://127.0.0.1:9200/user/_search  {
          "query":{
              "match": {
                  name:"小"
              }
          }
      }
    登入後複製
      GET请求
      http://127.0.0.1:9200/user/_search  {
          "query":{
              "match": {
                  sex:"男" #查询不到,必须输入男的          }
          }
      }
    登入後複製
      #不支持查询  GET请求
      http://127.0.0.1:9200/user/_search  {
          "query":{
              "match": {
                  tel:"10010" 
              }
          }
      }
    登入後複製
    #######

    以上是總結ElasticSearch基本運算!非常詳細!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    相關標籤:
    來源:learnku.com
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板