ES基础操作

文档是什么

ES里面每一条数据称之为文档(json格式)

文档元数据
_index
索引类似于关系型数据里面的数据库,它是我们存储和索引关联数据的地方。
名字必须是全部小写,不能以下划线开头,不能包含逗号。让我们使用website做为索引名。

_type
在Elasticsearch中,我们使用相同类型(type)的文档表示表,因为他们的数据结构也是相同的。


_id
id仅仅是一个字符串,它与_index和_type组合时,就可以在Elasticsearch中唯一标识一个文档。
当创建一个文档,你可以自定义_id,也可以让Elasticsearch帮你自动生成。

一个文档的格式
PUT /{index}/{type}/{id}
{
  "field": "value",
  ...
}

例子:
PUT /website/blog/123
{
  "title": "My first blog entry",
  "text": "Just trying this out...",
  "date": "2014/01/01"
}

查询文档
想要从Elasticsearch中获取文档,我们使用同样的_index、_type、_id,但是HTTP方法改为GET:

GET /website/blog/123?pretty

在任意的查询字符串中增加pretty参数,可以美化输出结果.


可以在curl后加-i参数得到响应头

curl -i -XGET http://localhost:9200/website/blog/124?pretty

GET请求将返回文档的全部,存储在_source参数中。但是可能你感兴趣的字段只是title。请求个别字段可以使用_source参数。多个字段可以使用逗号分隔

GET /website/blog/123?_source=title,text



只得到 _source 字段而不要其他的元数据,你可以这样请求

GET /website/blog/123/_source

它仅仅返回:

{
   "title": "My first blog entry",
   "text":  "Just trying this out...",
   "date":  "2014/01/01"
}

检查文档是否存在,使用HEAD, HEAD 请求不会返回响应体,只有HTTP头

curl -i -XHEAD http://localhost:9200/website/blog/123

如果文档存在返回
HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
Content-Length: 0
如果文档不存在
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=UTF-8
Content-Length: 0


更新文档
ES中不能修改,但是 重建索引(reindex) 或者替换掉它。


PUT /website/blog/123
{
  "title": "My first blog entry",
  "text":  "I am starting to get the hang of this...",
  "date":  "2014/01/02"
}

进行put后

_version增加了
{
  "_index" :  "website",
  "_type" :    "blog",
  "_id" :      "123",
  "_version" : 2,
  "created":  false <1>
}


删除文档

DELETE /website/blog/123



索引

创建索引

PUT /my_index


在  config/elasticsearch.yml  中添加下面的配置来防止自动创建索引

action.auto_create_index: false


删除索引

DELETE /my_index
删除多个索引
DELETE /index_one,index_two
DELETE /index_*
删除多个索引
DELETE /_all


索引的设置

 Elasticsearch 提供了优化好的默认配置。除非你明白这些配置的行为和为什么要这么做,请不要修改这些配置。

下面是两个最重要的设置:

number_of_shards:定义一个索引的主分片个数,默认值是 `5`。这个配置在索引创建后不能修改。
number_of_replicas:每个主分片的复制分片个数,默认是 `1`。这个配置可以随时在活跃的索引上修改。


创建只有一个主分片,没有复制分片的小索引。


PUT /my_temp_index
{
  "settings": {
  "number_of_shards" : 1,
  "number_of_replicas" : 0
  }
}

用 update-index-settings API 动态修改复制分片个数:

PUT /my_temp_index/_settings
{
  "number_of_replicas": 1
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值