当我最初为我们的数据存储编写delete
方法时,我搞砸了,忘记从search.Index
. 现在我发现搜索结果已恢复doc_ids
,但数据存储中没有关联数据。
我想遍历所有索引文档并删除那些没有关联数据的文档。
我想我可以做这样的事情:
docs = videos.Index.search('').results
doc_ids = [x.doc_id for x in docs]
keys = [ndb.Key(urlsafe=x) for x in doc_ids]
entities = [key.get() for key in keys]
nones = []
for idx, i, in enumerate(entities):
if i == None: nones.append(idx)
for i in nones:
videos.Index.delete(doc_ids[i])
我想知道是否有一种sync
方法或我缺少的东西?这videos.Index.search('')
也绝对不正确,因为我认为它在实体上匹配的任何字段都会多次返回同一个实体。