更新文档并在弹性搜索中添加新字段

时间:2016-09-28 14:54:46

标签: elasticsearch indexing

我们有用数据将每天更新。文档更改的一些属性和一些新记录就在那里。是否可以使用已更新的值重新索引数据,并且已添加新的reocord。 如果是,请解释如何。

是否有更新API?

我正在像这样索引

 String json = getJsonMapper().writeValueAsString(data);
    bulkRequestBuilder.add(getClient().prepareIndex(indexName, typeName).setSource(json));

我没有传递任何身份证明。我该如何更新呢什么是最好的方式

1 个答案:

答案 0 :(得分:1)

Elasticsearch在封面下使用Apache Lucene。在Lucene文档中immutable

您可以将Update API用于您的用例。此API执行删除并保存在下面,但这并不关心您。您甚至可以更新文档的一部分,这意味着Elasticsearch将检索旧文档,生成新文档,删除旧文档并保存新文档。

问题在于,所有这一切都需要使用相同的ID。如果您不使用,那么Elasticsearch Departments将为您使用Index API。这意味着它将保存为新文档。 Update API需要id,否则它不知道要更新的内容。