タグ

2010年3月10日のブックマーク (2件)

  • 複雑なクエリのためのプロパティを仕込んでおく方法 - スティルハウスの書庫の書庫

    以前、コンポジットインデックスを自作するというエントリを書きましたが、そのためにわざわざ新しいエンティティを作らずに、普通のエンティティにコンポジットインデックス代わりのプロパティを持たせる方法をちょこちょこ使い始めました。 例えば、以下のようなクエリを実行したいとき、 select * from Person where name == 'foo' & age >= 20 & age < 60 order by age asc このままではコンポジットインデックスを作らないとクエリ実行時にエラーが発生してしまいます。そこで、このエンティティPersonにプロパティsortKeyを追加します。このsortKeyには、name+ageの文字列を入れておきます。 bar:10 bar:29 foo:05 foo:25 foo:31 ... って感じです。数値を含める場合は「0」でパディングする

    複雑なクエリのためのプロパティを仕込んでおく方法 - スティルハウスの書庫の書庫
  • 大きなコンポジットインデックスは自作した方が早いかも - スティルハウスの書庫の書庫

    大きめのコンポジットインデックスを作ろうとしたら、管理コンソールのインデックス状態が「Error」となってしまいました。大きめといっても、2M件くらいなので“爆発”状態ではないのですが。。 MLで問い合わせしてみました。 http://groups.google.com/group/google-appengine-java/browse_thread/thread/18e26802d24f6d02# GoogleのJasonさんは「もう一回試せば今度はうまくいくよ!」と言うけど、そんなもんですか〜。 このコンポジットインデックスにはもうひとつ問題があって、テスト用に作った小規模の環境で動作を試したところ、複数プロパティに対するクエリがうまく動きません。うち1つのプロパティに不等式フィルタを追加すると、原因不明のエンティティの取りこぼしが発生してしまいます。取りこぼされるエンティティ自体は

    大きなコンポジットインデックスは自作した方が早いかも - スティルハウスの書庫の書庫