我正在尝试在python上使用批量将属性插入名为“用户”的文档中。
赞:
actions = [ { '_op_type': 'update', "_index": index, "_type": "users", "_id": s['id_user'], "doc": { "purchases": [] }, } for i, s in users.iterrows() ] success, failure = self.db.bulk(actions, stats_only=True)
如何添加不存在的购买内容?在这种情况下,我不希望出现问题。如果该值已被索引,则禁止更改。
答案 0 :(得分:1)
您可以尝试使用脚本化的ups来做到这一点,例如:
actions = [
{
'_op_type': 'update',
"_index": index,
"_type": "users",
"_id": s['id_user'],
"script": {
"source": "ctx._source.purchases = ctx._source.purchases ?: params.purchases",
"params": {
"purchases": []
}
},
"scripted_upsert": true,
"upsert": {}
}
for i, s in users.iterrows()
]
success, failure = self.db.bulk(actions, stats_only=True)
purchases
数组仅在源中尚未定义的情况下才会与params
中的数组一起分配。