ElsaticSearch增查改笔记

来源:互联网 发布:数据库设计问题 编辑:程序博客网 时间:2024/06/14 15:04

1 增

curl -XPUT /index/type/_id
{
  "filed":"value"
}
1.1.独立于索引:
新文档会写入索引段,索引段是独立lucence索引的。所以查询和新建文档是并行的。只有索引段被添加到了索引之后才能被搜索到(commit)。
1.2 1s更新:
上一步commit之后也未必能搜索到,因为Searcher(打开Searcher过程即使刷新过程)实例并未重新打开。Searcher一秒属性一次。
1.3 强制刷新:/index/_refresh
1.4 设置刷新时间
/index/_settings
{
index:
{refresh_interval:5m}
}

2 修改

2.1 对于db操作,是有更新数据库的需求,同样对于ES,也有数据的更新。
2.2 ES遵循文档不可变的准则:不能被修改,只能替换。所以ES中需要修改数据方法:
  1. 从旧文档中检索JSON
  2. 修改它
  3. 删除旧文档
  4. 索引新文档
2.3 更新方法一:
直接使用PUT。
PUT /index-ch/fulltext/5
{
"addcolune1":"new col"
}
这种方法相当于先删除旧的数据,再把这个addcolune1这属性中的数据插入。
即对应ES操作逻辑:

2.4 .局部更新,比如新增两个属性:
POST /index-ch/fulltext/5/_update
{
"doc" : {
"tags1" : [ "1testing1" ],
"views1": 0
}
}

3 查

 es的查询说是实时,其实应该是准实时,数据插入之后,大概需要1s之后才能被查出来。在第一部分已经做了解释





0 0
原创粉丝点击