Elasticsearch" put-if-absent"创造的行为似乎不起作用

时间:2015-01-14 00:12:08

标签: json elasticsearch

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html,它说

Automatic ID Generation

The index operation can be executed without specifying the id. 
In such a case, an id will be generated automatically. 
In addition, the op_type will automatically be set to create. 
Here is an example (note the POST used instead of PUT):

$ curl -XPOST 'http://localhost:9200/twitter/tweet/' -d '{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}'

所以基于我的阅读,如果我运行该查询两次,它应该只索引一个文档,第二个应该返回409.但是当我实际运行它(在elasticsearch 1.3.2上)时,它会创建一个文档时间!发生了什么,如果文档尚不存在,如何在不指定文档ID的情况下将其编入索引?

1 个答案:

答案 0 :(得分:0)

如果不指定id,则不能生成新的guid。 create op_type意味着它知道它不需要进行更新,因为它有一个新的唯一id。

你可以校验你的数据并将其设置为id,但如果数据每次都发生变化,这是一个坏主意。