ElasticSearch基本操作方法有哪些

这篇文章主要讲解了“ElasticSearch基本操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ElasticSearch基本操作方法有哪些”吧!

创新互联-专业网站定制、快速模板网站建设、高性价比花溪网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式花溪网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖花溪地区。费用合理售后完善,十年实体公司更值得信赖。

索引

  • 创建索引
     对比关系型数据库,创建索引就等同创建数据库

      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基本操作方法有哪些”的内容了,经过本文的学习后,相信大家对ElasticSearch基本操作方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


文章名称:ElasticSearch基本操作方法有哪些
地址分享:http://cdiso.cn/article/jgpdhi.html

其他资讯