elasticsearch 6.x基本的索引和文档的CRUD

官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html

示例1:

# 索引初始化操作
# 指定分片和副本数量
# shards一旦设定不能修改
PUT twitter
{
    "settings" : {
        "number_of_shards" : 3,
        "number_of_replicas" : 2
    }
}

# 获取索引索引索引
GET twitter/_settings
GET twitter

# 更新索引 更新副本数量
PUT twitter/_settings
{
    "settings" : {
        "number_of_replicas" : 3
    }
}

# 获取索引
GET _all
GET twitter

# 插入数据(es不需要提前定义好type, 就可以往里面放数据)
# 往索引中保存文档 (如果不指定属性类型,es会自动根据属性值猜测其对应的类型,不过建议自己指定类型,因为你一定比es更了解你的数据 )
PUT twitter/job/1
{
	"title":"python",
	"min_salary":15000,
	"city":"上海",
	"company": {
		"name":"京东",
		"company_addr":"xxx软件园"
	},
	"publish_date":"2019-06-01",
	"commnets":15
}

# 根据id查询,获取文档所有内容
GET twitter/job/1
GET twitter/job/1?_source

# 获取指定字段值
GET twitter/job/1?_source=min_salary

# 获取多个字段值
GET twitter/job/1?_source=min_salary,title

#修改文档, 比如删除掉job字段,此时是以覆盖的方式修改。修改时一定要指明id
PUT twitter/job/1
{
	"title":"hadoop",
	"min_salary":20000,
	"company": {
		"name":"京东",
		"company_addr":"xxx软件园"
	},
	"publish_date":"2019-06-01",
	"commnets":15
}

#增量更新,如将commnets值修改为50
POST twitter/job/1/_update
{
  "doc":{
    "commnets":50
  }
} 

# 删除
# 删除文档
DELETE twitter/job/1
# 删除type(报405,es不能删除type)
DELETE twitter/job
# index
DELETE twitter

示例2:

# 建一个 Index,并指定需要分词的字段
PUT /accounts
{
  "mappings": {
    "person": {
      "properties": {
        "user": {
          "type": "text",
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_max_word"
        },
        "title": {
          "type": "text",
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_max_word"
        },
        "desc": {
          "type": "text",
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_max_word"
        }
      }
    }
  }
}

# 新增记录 1
# 没指定id,要用POST, 而不是PUT
POST accounts/person
{
  "user": "张三",
  "title": "工程师",
  "desc": "数据库管理"
}

# 新增记录 2
PUT accounts/person/2
{
  "user": "李四",
  "title": "工程师",
  "desc": "系统管理"
}

# 新增记录 3
PUT accounts/person/3
{
  "user": "李四2",
  "title": "工程师",
  "desc": "系统管理"
}

GET accounts/person/2

# 删除记录 3
DELETE accounts/person/3

# 修改记录2的desc字段值 
PUT accounts/person/2
{
  "user": "李四",
  "title": "工程师",
  "desc": "数据库管理,软件开发"
}

# 返回所有记录
GET accounts/person/_search

# 指定的匹配条件是desc字段里面包含"软件"这个词的全文搜索
GET accounts/person/_search
{
  "query" : 
  { "match":
    { 
      "desc" : "软件" 
    }
  }
}

# ES 默认一次返回10条结果,可以通过size字段改变这个设置还可以通# 过from字段,指定位移
GET accounts/person/_search
{
  "query" : 
  { "match":
    { 
      "desc" : "管理" 
    }
  },
  "from": 1, 
  "size": 1
}

# 如果有多个搜索关键字, ES 认为它们是or关系
GET accounts/person/_search
{
  "query" : 
  { "match":
    { 
      "desc" : "软件 管理" 
    }
  }
}

# 执行多个关键词的and搜索,必须使用布尔查询
GET accounts/person/_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "desc": "软件" } },
        { "match": { "desc": "管理" } }
      ]
    }
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值