在弹性搜索中使用批量处理器索引(如果不存在)
Index if not exists using bulk processor in elasticsearch
我正在尝试为 elasticsearch 中不存在的文档建立索引。我在索引文档时使用 BulkProcessor
并使用 Requests.add
操作。有时我会有完全相同的id,它不是自动添加,而是更新吗?
P.S。更新不是必需的,它可以保持原样。
P.S.2 我正在尝试将用户过去的推文整合到 elasticsearch-twitter-river 的用户流中。
如果您为具有相同文档 ID 的文档编制索引,那么它将进行更新。否则它将添加一个新文档。
换句话说,如果您 PUT
一个文档到 {index}/{type}/{id}
,那么它将始终更新(覆盖)具有该 ID 的文档。如果您 POST
一个文档到 {index}/{type}
那么通常 Elasticsearch 会为您的每个 POST 生成一个新文档。也就是说,除非你mapped a document field to the _id
field in mappings。
似乎Twitter River uses the PUT method with explicitly specifying the id so 相同id的推文可能会被覆盖
我正在尝试为 elasticsearch 中不存在的文档建立索引。我在索引文档时使用 BulkProcessor
并使用 Requests.add
操作。有时我会有完全相同的id,它不是自动添加,而是更新吗?
P.S。更新不是必需的,它可以保持原样。
P.S.2 我正在尝试将用户过去的推文整合到 elasticsearch-twitter-river 的用户流中。
如果您为具有相同文档 ID 的文档编制索引,那么它将进行更新。否则它将添加一个新文档。
换句话说,如果您 PUT
一个文档到 {index}/{type}/{id}
,那么它将始终更新(覆盖)具有该 ID 的文档。如果您 POST
一个文档到 {index}/{type}
那么通常 Elasticsearch 会为您的每个 POST 生成一个新文档。也就是说,除非你mapped a document field to the _id
field in mappings。
似乎Twitter River uses the PUT method with explicitly specifying the id so 相同id的推文可能会被覆盖