Elasticsearch 集群健康检查、CURD以及多种搜索方式

Elasticsearch实战

上一课时已经介绍了Elasticsearch、Kibana安装

Elasticsearch 集群健康检查、CURD以及多种搜索方式

集群健康检查

es提供了一套api叫cat api可以查看es中的各种数据;

?v 参数是为了显示列头;

集群健康状态就是看status

green      每个索引的primary shard和replica shard都是active状态

yellow     每个索引的primary shard都是active状态,部分replica shard不是active状态

red          不是每个索引的primary shard都是active状态,部分索引有数据丢失

GET _cat/health?v

epoch      timestamp cluster        status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1606872265 01:24:25  my-application green           1         1      6   6    0    0        0             0                  -                100.0%

创建删除索引

查看索引

GET _cat/indices?v

新增索引

创建索引test_idex

PUT /test_idex?pretty

删除索引

删除索引test_idex

DELETE /test_idex?pretty

 

CURD

新增

PUT /index/type/id

我们分别建立两个文档,benzz和bmw

查询

GET /vehicle/car/1

更新

方式一:替换文档(需要带上所有的信息),语法和新增一样

PUT /vehicle/car/1
{
    "name" : "benzz",
    "price" : 330000
}

方式二:局部更新文档

POST /vehicle/car/1/_update
{
  "doc":{
    "price":340000
  }
}

删除

DELETE /vehicle/car/2

 

 

 

多种搜索方式

一、query string search(复杂请求无法构建,生产很少使用)

搜索全部商品

GET /vehicle/car/_search

took              耗费时间(毫秒)

timed_out     是否超时

_shards        数据拆成了多少个分片,对于搜索请求会打到所有的primary shard(或是它的某个replica shard)

hits.total       查询结果的数量

hits.max_score    对于search的相关匹配分数,匹配度越高,分数越高

hits.hits        命中的文档

搜索benzz并按价格倒序

GET /vehicle/car/_search?q=name:benzz&sort=price:desc

二、query DSL

DSL(Domain Specified Language)领域专用语言。

# 查询所有
GET /vehicle/car/_search
{
  "query": {
    "match_all": {}
  }
}

# 查询benzz,价格倒序
GET /vehicle/car/_search
{
  "query": {
    "match": {
      "name": "benzz"
    }
  },
  "sort": [
    {
      "price": {
        "order": "desc"
      }
    }
  ]
}

# 分页查询
GET /vehicle/car/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 1
}

# 指定查询name字段
GET /vehicle/car/_search
{
  "query": {
    "match_all": {}
  },
  "_source": ["name"]
}


三、query filter

# 筛选价格在35-40万之间的benzz
GET /vehicle/car/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "benzz"
          }
        }
      ],
      "filter": [
        {
          "range": {
            "price": {
              "gte": 300000,
              "lte": 350000
            }
          }
        }
      ]
    }
  }
}

四、full-text search(全文搜索)

# 新增新款benzz
PUT /vehicle/car/3
{
  "name" : "benzz new",
  "price" : 330000
}


# 会拆分benzz和new去匹配,得分高的排在前面
GET /vehicle/car/_search
{
  "query": {
    "match": {
      "name": "benzz new"
    }
  }
}

五、phrse search(短语搜索)

和全文检索对立,要求搜索的字段要在文档中完全匹配

GET /vehicle/car/_search
{
  "query": {
    "match_phrase": {
      "name": "benzz new"
    }
  }
}

六、highlight search(高亮搜索)

GET /vehicle/car/_search
{
  "query": {
    "match": {
      "name": "bmw"
    }
  },
  "highlight": {
    "fields": {
      "name":{}
    }
  }
}

欢迎访问我的个人博客:小马博客

欢迎关注公众号《JAVA拾贝》

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA拾贝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值