私はクラウド上で動作しているクローズドシステムに取り組んでいます。フェッチ出力をキャッシュする方法はありますか?
私が必要とするのは、ユーザー型入力正規表現を使用してデータセット内の行をフィルタリングする検索関数です。
phrase = re.compile(request.get("query"))
data = Entry.all().fetch(50000) #this takes around 10s when there are 6000 records
result = x for x in data if phrase.search(x.title)
データベース自体はあまり変更されず、1日に200-300件を超える検索は行われません。
どのようにしてすべてのエントリをキャッシュする方法がありますか(それらのうち50.000を超え、それぞれ500バイト以下であることが予想されます)、取得するのが10秒を超えないでしょうか?あるいは、それを並列化するのでしょうか?私は10cpuの秒を気にしないが、私はユーザーが待たなければならない10秒気にする。
"index it and use .filter()"のような答えに答えるには、クエリは正規表現であり、正規表現を使用できるようにするインデックス付けメカニズムについてはわかりません。
そこにはうまくいっています:) – systempuntoout