使用Python 3在Google Cloud Datastore实体上进行全文搜索?

时间:2019-02-18 17:42:14

标签: python google-app-engine full-text-search google-cloud-datastore

我想使用Python 3在Google Cloud Datastore中的实体上执行全文搜索。这与GAE的'Search API'非常相似,但适用于Python 2.7。那么,如何使用Python 3.7做到这一点呢?另一个选择是使用像ElasticSearch这样的“搜索即服务”产品,为此我们需要启动一个看起来相对昂贵且复杂的Compute Engine实例。因此,我想知道是否有人可以帮助我找到像Python 3.7一样简单的“ Search API”。

谢谢。

2 个答案:

答案 0 :(得分:2)

首先,您应该注意,“ Search API”与数据存储区搜索不是同一件事(甚至不相关)。

在搜索API中,创建和维护文档索引(不是数据存储索引)是编程的,在运行时执行,完全由应用程序负责。该索引使全文(和部分文本)搜索得以执行。

必须先创建数据存储区索引,然后应用程序才能在运行时使用它们。维护索引是由数据存储区完成的,因为要添加/删除/修改实体。索引中仅存在完整/完整的属性值,并且在执行搜索时必须指定这些完整的值(部分值不起作用)。只能索引长度不超过1500个字节的字符串值,不能索引更长的字符串。

唯一的官方suggestion来自一个灵活的环境指南(同样缺少Search API支持),您可能会看到:

  

该搜索服务目前不在标准范围内   环境。您可以托管任何全文本搜索数据库,例如   ElasticSearch on Google Compute Engine并从两者访问   标准灵活的环境。

您可以编写自己的应用程序以实现类似于Search API的功能(使用幕后的数据存储区)。这些功能在Search API Basics中有更详细的描述。

答案 1 :(得分:0)

我们曾经使用Google App Engine搜索API,直到Google弃用它并开始推荐Elasticsearch或Algolia。取而代之的是,我们使用https://firesearch.dev/,它将全文搜索带到在Google Cloud Platform中运行的Cloud Firestore之上。