0

考虑到以下情况,我想知道以下哪种方法在资源使用方面更快和/或更有效:

您有一个包含以下字段的文档:

  1. 标题(文字)
  2. 说明(文字)
  3. 图像(文本 - 图像源的 url,或者,可以是 HTML 字段)

Search API 应该搜索 Title 和 Description 字段,而不是 Image 字段。图像字段仅用于模板能够将图像源呈现到搜索结果页面上。

所以问题是:

  1. 这种方法正确吗?
  2. 添加不真正用于搜索的字段是否会增加超重并消耗额外的资源?
  3. 有没有办法告诉 Search API 不要搜索某个字段?
  4. 使用 Search API 仅检索 doc_ids 然后使用这些 doc_ids 从数据存储中获取会更快吗?

谢谢!

4

1 回答 1

1

1)您用一些字段填充文档,然后搜索这些字段。方法是正确的。我也有一个带有链接到图像的 URL 的字段。

2) 是的,因为它们必须被存储,并且您按存储字节付费。但是,如果您需要它们,因为它们构成了您想要提供的数据的一部分,那么就是这样。

3) 是的,如果您愿意,您可以只搜索指定的字段。例如:

query_string = "产品:钢琴"

该查询只会搜索字段“ product”。此处详述:https ://developers.google.com/appengine/docs/python/search/#Python_Searching_for_documents_by_their_contents

4)您可以使用 appstats 确定时间等:https ://developers.google.com/appengine/docs/python/tools/appstats

但在我看来,如果您只获取文档 ID,然后无论如何只获取所有这些文档,那么这将比获取整个文档更慢,因为您正在对数据库进行更多往返查询。如果您没有全部获取它们并且只使用匹配的第一个,或者文档很大,那么它可能会更慢。谁知道!你的用例就是你的用例。

为什么不通过实施各种方法自己运行一些测试,然后看看哪种方法最适合您的用例?Appstats 将对此有所帮助。

如果您想在获取初始文档后检索到的可搜索文档链接到的数据存储中存储其他数据(例如,您将数据存储密钥存储在文档中),那么一切都需要成本,速度或 $$。两者都是有效的选项,具体取决于您的(再次!)用例。

于 2013-11-03T11:52:54.327 回答