ES Kibana

 

GET _cat/indices?v 获取es当前行信息

 

创建Document

PUT /ecommerce/product/1
{
"name" : "gaolujie yagao",
"desc" : "gaoxiao meibai",
"price" : 30,
"producer" : "gaolujie producer",
"tags": [ "meibai", "fangzhu" ]
}

 

查询
GET /ecommerce/product/2


覆盖,替换文档(全量替换)
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"
 }
}

删除文档
DELETE /ecommerce/product/2

注意:在删除一个document之后,我们可以从侧面证明,它不是立即物理删除的,因为它的一些版本号信息还是保留的

使用query DSL 请求查询
GET /ecommerce/product/_search
 {
 "query" : {
 "match_all" : {}
 }
 }


查询名称包含yaogao的商品,同时按照价格降序排列
 GET /ecommerce/product/_search
 {
 "query" : {
 "match" : {
 "name" : "yagao"
 }
 },
 "sort" : [
 { "price" : "desc"}
 ]
 }


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

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

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

posted @ 2021-07-08 09:19  chentaohere  阅读(97)  评论(0)    收藏  举报