使用频繁更改的数据在数据存储上搜索API

数据存储实体具有以下字段:

  • ID
  • 创建
  • 用户名
  • not_unique_id
  • 名称
  • 描述
  • 我希望能够对名称和描述进行全文搜索。 为此,我们需要从数据存储实体创建Google搜索API文档。

    但是,数据存储区数据具有以下属性:

  • 添加后12小时内删除用户的数据。
  • 根据用户需求,删除用户的数据并添加新数据。
  • not_unique_id是第三方ID,应该用于在Search Api中组合相关实体,因为我们只需要每次搜索一个实体。
  • 当用户提交新数据时,一次只能有+ - 1000个实体。
  • 我遇到的最大问题是阻止Google API文档引用不存在的Datastore实体。 (不存在,因为not_unique_id不再出现在数据存储中)

    我希望看到一些概念,指导,想法和提示,以便我可以验证我是否正确。 谢谢!!

    正在解决方案:

    以下是使Search API与数据存储保持同步的例程。 CreateUpdateDelete是根据用户请求执行的。 读取在应用程序请求上执行。 Cron作业将使用“删除”将Search API与数据存储保持同步。

    数据存储实体

    id = user_id

    ancestor = not_unique_id

    | ancestor | id | created | name | description | number |
    | 19385020 | 1  | 1234567 | Foo  | Qwerty      | 63     |
    | 19385020 | 2  | 1234567 | Foo  | Qwerty2     | 12     |
    | 19385020 | 3  | 1234567 | Foo  | Qwerty      | 74     |
    

    搜索API文档

    | not_unique_id | name | description |
    | 19385020      | Foo  | Qwerty      |
    

    创建

  • 如果ancestor + id组合已存在,请转至更新。
  • 用户数据被插入数据存储区。
  • 搜索文档是基于祖先(not_unique_id)创建的。 文档的名称和说明是出现在实体组中的最常用名称。
  • 全名搜索API查询名称/描述以获取not_unique_id。
  • 查询Datastore查找祖先== not_unique_id和数字> 0的实体。
  • TODO如果一个或多个not_unique_id没有实体存在,该怎么办? 我期待有一定数量的分页结果。
  • 更新

  • 更新数据存储实体。
  • 删除

  • 将数据存储实体的编号设置为0。
  • 克龙

    获取数字== 0的所有实体或<12小时前创建的实体。 如果最后一个死者实体即将被删除,请移除文档。 删除实体。

    链接地址: http://www.djcxy.com/p/23221.html

    上一篇: Search API on Datastore with frequently changing data

    下一篇: How is the 60s deadline applied to appengine .run and .fetch retrieval?