我们的ElasticSearch实例中约有55.000.000的文档。我们有一个带user_ids的CSV文件,最大的CSV有900万个条目。我们的文档以user_id为键,因此很方便。
我发布这个问题是因为我想讨论并拥有解决此问题的最佳选择,因为有多种方法可以解决此问题。如果用户文档还没有新的“标签”,则需要在文档中添加新的“标签”,例如,使用“ stackoverflow”或“ github”标记用户。
update
bulk
/update_by_query
因此,问题仍然是执行此操作的最佳方法是什么,如果你们中的某些人过去曾这样做,请确保分享您的数字/表现以及这次您将如何做不同的事情。
使用上述的按查询更新插件,您只需调用:
curl -XPOST localhost:9200/index/type/_update_by_query -d '{ "query": {"filtered": {"filter":{ "not": {"term": {"tag": "github"}} }}}, "script": "ctx._source.label = \"github\"" }'
按查询更新插件仅接受脚本,不接受部分文档。
至于性能和内存问题,我想最好的办法就是尝试一下。