我试图在GAE的数据存储区中实现某个实体类型的关键字/标签搜索:
class Docs(db.Model):
title = db.StringProperty()
user = db.StringProperty()
tags = db.StringListProperty()
我还写了一个非常基本的搜索功能(使用虚假的标签列表,而不是数据存储区值),它接受一个查询字符串并将其与每组标签相匹配。它根据与标签匹配的查询字数对文档进行排名。除了使用实际的数据存储区之外,这几乎是我需要它做的全部。
我不知道如何获取实际的数据存储区值。为了使我的搜索功能起作用,我需要一个数据存储区中所有实体的列表,这是不可能的(?)。
我也尝试过将GAE的实验性全文搜索和关系索引实体作为一种搜索数据存储区的方法,而不使用我编写的函数。两者都没有成功。
关于如何根据标签搜索实体的任何其他想法?
答案 0 :(得分:1)
这是一个非常简单的查询,如果您需要查找标签为“findme”的所有文档,则只需:
num_results = 10
query = Docs.all().filter("tags in", "findme")
results = query.fetch(num_results) # get list of results
有很好的记录: https://developers.google.com/appengine/docs/python/datastore/queries