一、Elasticsearch 7 入门

安装(开箱即用)

window 安装

  1. 下载并解压:elasticsearch
  • 官方下载:https://www.elastic.co/cn/downloads/elasticsearch
  • 链接:https://pan.baidu.com/s/1zIqXPQr4yAhHSHKZF-mQJg
    提取码:ecbj
  1. 启动:/bin/elasticsearch.bat
  2. 验证elasticsearch:http://localhost:9200/?pretty
  3. 下载并解压:kibana
  • 官方下载:https://www.elastic.co/cn/downloads/kibana
  • 链接:https://pan.baidu.com/s/1xSAA_KztGUJwjEBDwoAeWw
    提取码:195q
  1. 启动:/bin/kibana.bat
  2. 验证:http://localhost:5601/
  3. 开发者关注 Kibana -> Dev Tools http://localhost:5601/app/kibana#/dev_tools/console

API

健康状况

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
1585200949 05:35:49  elasticsearch green           1         1      3   3    0    0        0             0                  -                100.0%

主要看 status 信息

  • green - 健康
  • yellow - 分配了所有主分片,但至少缺少一个副本,此时集群数据仍旧完整
  • red - 部分主分片不可用,可能已经丢失数据

索引状况

GET _cat/indices?v

health status index                    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .kibana_task_manager_1   Uhs2F8GYTxO9CtH8t9JKGA   1   0          2            1     51.4kb         51.4kb
green  open   .apm-agent-configuration KJF2qw89TcqNmbYN2PnxhQ   1   0          0            0       283b           283b
green  open   .kibana_1                5zJcklOxSjaR95FDvPLUxg   1   0          4            0     16.6kb         16.6kb

索引操作

  • PUT /test_index - 创建索引,test_index 为自定义所以名
  • DELETE /test_index - 删除索引

简单CURD操作

新增商品,新增文档,建立索引

插入数据

  • 语法
PUT /index/type/id
{
    ...
}
  • es 会自动建立 index 和 type ,不需要提前创建,而且 es 默认会对 document 每个 field 都建立倒排索引,让其可以被搜索
  • 新增商品
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", "fangzhu"]
}

查询

  • 语法
GET /index/type/id
  • 查询商品
GET /ecommerce/product/1

{
  "_index" : "ecommerce",
  "_type" : "product",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "gaolujie yagao",
    "desc" : "gaoxiao meibai",
    "price" : 30,
    "producer" : "gaolujie producer",
    "tags" : [
      "meibai",
      "fangzhu"
    ]
  }
}

更新

修改后 document 的 version 会递增

语法一 - 替换法

PUT /index/type/id
{ 
    "field1" : "field1 new value"
    all field ...
}
  • 修改商品名称
PUT /ecommerce/product/1
{ 
    "name": "jiaqiangban gaolujie yagao",
    "desc": "gaoxiao meibai",
    "price": 30,
    "producer": "gaolujie producer",
    "tags": ["meibai", "fangzhu"]
}

缺陷:必须带上素有 field , 才能去进行信息的修改

语法二 - 更新法【推荐】

POST /index/type/id/_update
{
    "doc": {
        "filed": "new field value"
    }
}
  • 修改商品名称
POST /ecommerce/product/1/_update
{
    "doc": {
        "name": "jiaqiangban gaolujie yagao"
    }
}

注意:修改内容在doc节点下

删除

  • 语法
DELETE /index/type/id
  • 删除商品
DELETE /ecommerce/product/1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章