簡體   English   中英

Google Appengine Search API到數據存儲區查詢

[英]Google Appengine Search API to Datastore Query

我構建了像這樣的Search API數據

search.SearchResults(
results=
[
search.ScoredDocument(doc_id=u'4873035534303232', fields=[search.TextField(name=u'name', value=u'a'), search.TextField(name=u'description', value=u'b'), search.DateField(name=u'date', value=datetime.datetime(2015, 2, 16, 7, 21, 58, 188000)), search.TextField(name=u'author', value=u'test@example.com')], language=u'en', rank=130231318L), 
search.ScoredDocument(doc_id=u'5717460464435200', fields=[search.TextField(name=u'name', value=u'a b c'), search.TextField(name=u'description', value=u'c d e'), search.DateField(name=u'date', value=datetime.datetime(2015, 2, 16, 7, 21, 25, 965000)), search.TextField(name=u'author', value=u'test@example.com')], language=u'en', rank=130231285L), 
search.ScoredDocument(doc_id=u'5506354231902208', fields=[search.TextField(name=u'name', value=u'How about today?'), search.TextField(name=u'description', value=u"it's good"), search.DateField(name=u'date', value=datetime.datetime(2015, 2, 16, 7, 10, 13, 608000)), search.TextField(name=u'author', value=u'test@example.com')], language=u'en', rank=130230613L)
],
number_found=3L)

我沒有將blobKey插入到Search API中,然后我需要查詢Datastore來獲取blobKey。 每個ndb文章都具有與ID相同的doc_id。

因此,當我得到Search API的響應時,我必須查詢3次

doc_id=u'4873035534303232', doc_id=u'5717460464435200', doc_id=u'5506354231902208'

我認為這個過程非常糟糕。 配額將很快超過。 你有其他解決方案嗎?

使用ndb.get_multi或者只是對該數據進行反規范化並將其存儲在搜索API中以便更快地訪問。

ndb.get_multi將使用單個批處理來獲取所有密鑰並僅使用N個讀取操作。 (0.05百萬行動是免費的)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM