Python 如果一个属性不存在,如何将它插入到文档中?
我试图在python上使用bulk将一个名为“users”的属性插入到一个文档中 像这样:Python 如果一个属性不存在,如何将它插入到文档中?,python,
elasticsearch,Python,
elasticsearch,我试图在python上使用bulk将一个名为“users”的属性插入到一个文档中 像这样: 如果不存在,我如何添加购买?在这种情况下,我不希望有人插手。如果该值已被索引,则禁止更改该值。您可以尝试使用脚本upsert执行此操作,如下所示: actions = [ { '_op_type': 'update', "_index": index, "_type": "users", "_id": s['id_user'],
如果不存在,我如何添加购买?在这种情况下,我不希望有人插手。如果该值已被索引,则禁止更改该值。您可以尝试使用脚本upsert执行此操作,如下所示:
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)
如果源代码中尚未定义,则只能在
params
中为purchases
数组分配数组。Awesome!谢谢你!
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)