在 Elasticsearch 中, 每个字段的所有数据 都是 默认被索引的 。 即每个字段都有为了快速检索设置的专用倒排索引。而且,不像其他多数的数据库,它能在 同一个查询中 使用所有这些倒排索引,并以惊人的速度返回结果。
文档
一个对象仅仅是类似于 hash 、 hashmap 、字典或者关联数组的 JSON 对象,对象中也可以嵌套其他的对象。 对象可能包含了另外一些对象。
在 Elasticsearch 中,术语 文档 有着特定的含义。它是指最顶层或者根对象, 这个根对象被序列化成 JSON 并存储到 Elasticsearch 中,指定了唯一 ID。
文档元数据
_index:一个 索引 应该是因共同的特性被分组到一起的文档集合。类比数据库
_type:在索引中对数据进行逻辑分区。类比数据表
_id:当它和 _index 以及 _type 组合就可以唯一确定 Elasticsearch 中的一个文档。类比数据唯一标识
写数据
1 | PUT /{index}/{type}/{id} |
读数据
pretty 为了让输出更友好
1 | #取所有字段 |
判断文档是否存在(200存在,404不存在)
1 | $ curl -I -XHEAD "10.96.83.188:9200/website/blog/123/" |
更新操作
创建新文档
要么id保证唯一,要么不带id新建,由ES自动创建
创建时,带上_create,保证只新增,如果已存在则报错
1 | curl -X PUT "10.96.83.188:9200/website/blog/123/_create" -H 'Content-Type: application/json' -d' |
删除文档
1 | curl -X DELETE "10.96.83.188:9200/website/blog/123" |
更新部分文档
1 | curl -X POST "10.96.83.188:9200/website/blog/1/_update" -H 'Content-Type: application/json' -d' |
乐观并发控制