0

我正在尝试了解 Google App Engine 搜索 API 上的文档的概念。我遇到问题的概念是存储文档背后的想法。例如,假设在我的数据库中我有这个:

class Business(ndb.Model):
   name = ndb...
   description = ndb...

对于每个企业,我都存储了一个文档,这样我就可以对名称和描述进行全文搜索。我的问题是:

  1. 这是正确的吗?这是否意味着我们本质上将每个实体 TWICE 存储在两个不同的位置,只是为了使其可搜索?

  2. 如果上面的答案是肯定的,有没有更好的方法呢?

  3. 如果第 1 点的答案是肯定的,那么文件存储在哪里?到高级代表 DS?

我只是想确保我正确地考虑了这个概念。在文档中存储实体意味着我必须在两个不同的地方维护每个实体......看起来并不是很理想,只是为了让它可搜索。

4

1 回答 1

3

你已经解决了。

全文搜索概述

Search API 允许您的应用程序对结构化数据执行类似 Google 的搜索。您可以搜索多种不同类型的数据(纯文本、HTML、原子、数字、日期和地理位置)。搜索返回匹配文本的排序列表。您可以自定义结果的排序和呈现方式。

由于您无法在数据存储中的模型内容“内部”进行搜索,因此搜索 API 提供了对文本和 html 执行此操作的能力。

因此,要将可搜索的文本文档(例如产品描述)链接到数据存储中的模型(例如该产品的价格),您必须“手动”在文档和它们相关的数据存储对象之间建立链接。您也可以完全独立地使用搜索 api 和数据存储,因此您必须将其内置。AFAIK 它们之间没有自动链接。

于 2013-03-07T14:10:46.687 回答