我应该多久重建一次App Engine搜索索引(全文搜索)?

时间:2013-03-04 16:46:03

标签: google-app-engine python-2.7 full-text-search gae-search

似乎 - 至少现在 - 我必须手动保持搜索索引与数据存储区同步。如果每次在数据存储区中更改某些内容时重建索引,我都会假设我会遇到配额问题,因此我认为创建一个cron作业以定期重建索引会更好。我应该多久重建一次索引以避免遇到配额问题?

1 个答案:

答案 0 :(得分:4)

使用ndb为您设置Model Hooks后使用_post_put_hook将实体编入索引的模型。

例如:

class MyModel(ndb.Model):
    title = ndb.StringProperty()

    def _post_put_hook(self, future):
        fields = [search.TextField(name='title', value=self.title)]
        doc    = search.Document(doc_id=self.key.id(), fields=fields)
        search.Index('index-name').put(doc)
        ...

https://developers.google.com/appengine/docs/python/ndb/modelclass#Model__post_put_hook