Python App Engine全文搜索>空搜索返回search.Index的所有文档

时间:2014-03-29 12:07:52

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

我试图模仿集合上空搜索的正常行为。通常,空搜索应该返回所有实体。如何使用App Engines全文搜索执行此操作?基本上我如何在没有任何搜索参数的情况下返回给定索引中的所有文档?

在这种情况下,我不能只返回数据存储区集合的原因是模型具有父级,并且此搜索是不基于任何祖先的全局搜索。

一如既往地感谢您对此的任何帮助。

1 个答案:

答案 0 :(得分:1)

例如(未经测试且非常不理想):

from google.appengine.api import search
...
def get_all_in_index(index_name):
    """Get all the docs in the given index."""
    results = []
    doc_index = search.Index(name=index_name)

    # looping because get_range by default returns up to 100 documents at a time
    while True:
        # Get a list of documents populating only the doc_id field and extract the ids.
        document_ids = [document.doc_id
                        for document in doc_index.get_range(ids_only=True)]
        if not document_ids:
            break
        # Get the documents for the given ids from the Index.
        results.append(doc_index.get_range(document_ids))