Elasticsearch与springboot结合应用(三)

本文介绍了如何使用Elasticsearch进行数据操作,包括创建Document、查询、替换、更新和删除。同时展示了各种查询方式,如分页、指定字段、过滤、全文检索、短语搜索及多条件查询。通过实例详细解析了Elasticsearch的索引管理和搜索功能。
摘要由CSDN通过智能技术生成

搭建完kibana后,依次输入如下命令,熟悉下elasticsearch命令。

一、开始创建Document:

PUT /ecommerce/product/1
{
    "name" : "gaolujie yagao",
    "desc" :  "gaoxiao meibai",
    "price" :  30,
    "producer" :      "gaolujie producer",
    "tags": [ "meibai", "fangzhu" ]
}
PUT /ecommerce/product/2
{
    "name" : "jiajieshi yagao",
    "desc" :  "youxiao fangzhu",
    "price" :  25,
    "producer" :      "jiajieshi producer",
    "tags": [ "fangzhu" ]
}
PUT /ecommerce/product/3
{
    "name" : "zhonghua yagao",
    "desc" :  "caoben zhiwu",
    "price" :  40,
    "producer" :      "zhonghua producer",
    "tags": [ "qingxin" ]
}

二、增删改

#2.查询
GET /ecommerce/product/2

#3.覆盖,替换文档(全量替换)
PUT /ecommerce/product/1
{
  "name" : "jiaqiangban gaolujie yagao",
  "desc" : "gaoxiao meibai",
  "price" : 30,
  "producer" : "gaolujie producer",
  "tags" : [ "meibai" , "fangzhu" ]
}
注意:1.document是不可变的,如果要修改document的内容,可以通过全量替换,直接对document  重新建立索引,替换里面所有的内容。   2.es会将老的document标记为deleted(逻辑删除),然后新增我们给定的一个document,当我们  创建越来越多的document的时候,es会在适当的时机在后台自动删除(物理删除)标记为deleted  的document。   3.替换必须带上所有的field,否则其他数据会丢失。 14 

#4.修改(更新文档)
POST /ecommerce/product/1/_update
{
  "doc" : {
    "name" : "jiaqianban gaolujie yagao1"
  }
}

#5.删除文档
DELETE /ecommerce/product/2
注意:在删除一个document之后,我们可以从侧面证明,它不是立即物理删除的,因为它的一些版本号信息还是保留的
#6.使用query DSL 请求查询
GET /ecommerce/product/_search
{
  "query" : {
    "match_all" : {}
  }
}

三、查询搜索


#6.2分页查询
#总共3条商品,假设每页就显示1条商品,现在显示第2页,所以就查出来第2个商品
GET /ecommerce/product/_search
{
  "query" : { "match_all" : {}},
  "from" : 1,
  "size" : 1
}

#6.3指定查询项
GET /ecommerce/product/_search
{
  "query" : {"match_all" : {}},
  "_source" : ["name", "price"]
}

#6.4过滤查询
#搜索商品名称包含yaogao,而且售价大于25元的商品
GET /ecommerce/product/_search
{
  "query" : {
    "bool" : {
      "must" : {
        "match" : {
          "name" : "yagao"
      }
  },
  "filter" : {
    "range" : {
      "price": {"gt" : 25}
        }
      }
    }
  }
}

#7.ull-text search(全文检索)
GET /ecommerce/product/_search
{
  "query" : {
    "match" : {
      "producer": "yagao producer"
    }
  }
}

#8.phrase search(短语搜索)
GET /ecommerce/product/_search
{
  "query" : {
    "match_phrase" : {
      "producer" : "yagao producer"
    }
  }
}

#9.多条件查询
#名字中有"yagao",描述上可以有fangzhu也可以没有,价格不能是25元

GET /ecommerce/_search
{
  "query" : {
    "bool" : {
      "must" : [
        {
          "match" : {
            "name" : "yagao"
          }
        }
        ],
        "should" : [
          {
            "match" : {
              "desc" : "fangzhu"
            }
          },
          {
            "match" : {
              "desc" : "caoben"
            }
          }
          ],
          "must_not" : [
            {
              "match" : {
                "price" :25
              }
            }
          ],
          "minimum_should_match" : 1
    }
  }
}

上一篇:Elasticsearch与springboot结合应用(二)_一个高效工作的家伙的博客-CSDN博客

下一篇:Elasticsearch与springboot结合应用(四)_一个高效工作的家伙的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值