Google App Engine - 搜索API索引增长

问题描述 投票:1回答:2

我想知道如何基于插入的实体数量和信息量来估计App引擎搜索API(FTS)索引的增长(在一段时间内增加多少大小)。 为此,我想基本知道如何计算索引大小(取决于它取决于什么)。 特别:

  1. 在插入新实体时,增长(大小)是否受先前现有实体数量的影响? (即增长是否呈指数增长)? 对于前者 如果我有1000个实体并插入10,则索引将以X字节增长。 但是如果我有100000个实体并且插入10,它会随着X增加还是比X增加得更多(指数,让我们说10 * X)?
  2. 字段(属性)的数量是否会以指数方式影响大小? 对于前者 如果我有2个字段的实体A和4个字段的实体B(为了数学简单,我们说值相同),当添加实体B时,大小会增加,是实体A的两倍还是更多?
  3. 我可以用什么其他方法来查找统计信息; 在app引擎的云控制台中有其他工具,还是可以通过编程方式执行此操作?

谢谢。

google-app-engine google-search-api
2个回答
0
投票

您可以通过运行以下代码来检查给定索引的大小。

from google.appengine.api import search

for index in search.get_indexes(fetch_schema=True):
    logging.info("index %s", index.storage_usage)
# pseudo code
amount_of_items_to_add = 100
x = 0
for x <= amount_of_items_to_add:
    search_api_insert_insert(data)
    x+=1
#rerun for loop to see how much the size increased
for index in search.get_indexes(fetch_schema=True):
    logging.info("index %s", index.storage_usage)

这段代码显然不是一个完整的工作示例,但您应该能够构建一个简单的方法,将一些数据插入到搜索API中,并返回已用存储量的增加量。


0
投票

我已经针对不同数量的实体和每个实体的不同数量的索引属性运行了多个测试,并且它接收到由api报告的索引的估计增长不是指数的线性。 但最有趣的事实是,尽管报告的大小几乎是实时的,但在从索引中删除文档后,更新可能需要12,24甚至36小时。

© www.soinside.com 2019 - 2024. All rights reserved.