Hiroyuki Sato
hiroy****@gmail*****
2015年 9月 17日 (木) 10:35:01 JST
須藤様 佐藤です。 ご連絡をありがとうございます。 なるほど、参照型の使い所がわかりました。 もしFoodテーブルのcategoryカラムがすでに文字列で入っていて データを作り直す場合は次のようなことで移行するということですね。 1, データをダンプして、スキーマの部分だけ修正してロードしなおす。 2, column_copyを使ってカラムをコピーする 試してみたいと思います。ありがとうございました。 2015年9月16日(水) 22:50 Kouhei Sutou <kou****@clear*****>: > 須藤です。 > > In <CA+Tq****@mail*****> > "[groonga-dev,03507] データのソートについて" on Wed, 16 Sep 2015 06:41:09 +0000, > Hiroyuki Sato <hiroy****@gmail*****> wrote: > > > select時のソートについて教えて下さい。 > > > > 表の方がわかりやすいのでgistに書きました。 > > https://gist.github.com/hiroyuki-sato/79c4ac1b80736956bbe5 > > > > やりたいことは下記のようにデータを並べ替える条件を > > 複数持つにはどうしたら良いか?ということです。 > > Gistの方に書いている通り、種類ごとに順序を持たせることができ > ます。種類をテーブル参照型にするところがポイントです。 > > 具体例はこんな感じです。 > > ---- > table_create Categories TABLE_HASH_KEY ShortText > column_create Categories order1 COLUMN_SCALAR Int32 > column_create Categories order2 COLUMN_SCALAR Int32 > column_create Categories order3 COLUMN_SCALAR Int32 > > load --table Categories > [ > {"_key": "果物", "order1": 1, "order2": 2, "order3": 3}, > {"_key": "野菜", "order1": 2, "order2": 1, "order3": 2}, > {"_key": "魚", "order1": 3, "order2": 3, "order3": 1} > ] > > table_create Foods TABLE_HASH_KEY ShortText > column_create Foods category COLUMN_SCALAR Categories > > load --table Foods > [ > {"_key": "りんご", "category": "果物"}, > {"_key": "バナナ", "category": "果物"}, > {"_key": "もも", "category": "果物"}, > {"_key": "キューリ", "category": "野菜"}, > {"_key": "キャベツ", "category": "野菜"}, > {"_key": "サンマ", "category": "魚"}, > {"_key": "鯛", "category": "魚"}, > {"_key": "イワシ", "category": "魚"} > ] > > select Foods --sortby category.order1 > # [ > # [ > # 0, > # 1442411204.23089, > # 0.000399351119995117 > # ], > # [ > # [ > # [ > # 8 > # ], > # [ > # [ > # "_id", > # "UInt32" > # ], > # [ > # "_key", > # "ShortText" > # ], > # [ > # "category", > # "Categories" > # ] > # ], > # [ > # 1, > # "りんご", > # "果物" > # ], > # [ > # 2, > # "バナナ", > # "果物" > # ], > # [ > # 3, > # "もも", > # "果物" > # ], > # [ > # 4, > # "キューリ", > # "野菜" > # ], > # [ > # 5, > # "キャベツ", > # "野菜" > # ], > # [ > # 7, > # "鯛", > # "魚" > # ], > # [ > # 6, > # "サンマ", > # "魚" > # ], > # [ > # 8, > # "イワシ", > # "魚" > # ] > # ] > # ] > # ] > select Foods --sortby category.order2 > # [ > # [ > # 0, > # 1442411204.23131, > # 0.000266313552856445 > # ], > # [ > # [ > # [ > # 8 > # ], > # [ > # [ > # "_id", > # "UInt32" > # ], > # [ > # "_key", > # "ShortText" > # ], > # [ > # "category", > # "Categories" > # ] > # ], > # [ > # 4, > # "キューリ", > # "野菜" > # ], > # [ > # 5, > # "キャベツ", > # "野菜" > # ], > # [ > # 1, > # "りんご", > # "果物" > # ], > # [ > # 2, > # "バナナ", > # "果物" > # ], > # [ > # 3, > # "もも", > # "果物" > # ], > # [ > # 6, > # "サンマ", > # "魚" > # ], > # [ > # 7, > # "鯛", > # "魚" > # ], > # [ > # 8, > # "イワシ", > # "魚" > # ] > # ] > # ] > # ] > select Foods --sortby category.order3 > # [ > # [ > # 0, > # 1442411204.23159, > # 0.000393867492675781 > # ], > # [ > # [ > # [ > # 8 > # ], > # [ > # [ > # "_id", > # "UInt32" > # ], > # [ > # "_key", > # "ShortText" > # ], > # [ > # "category", > # "Categories" > # ] > # ], > # [ > # 8, > # "イワシ", > # "魚" > # ], > # [ > # 7, > # "鯛", > # "魚" > # ], > # [ > # 6, > # "サンマ", > # "魚" > # ], > # [ > # 5, > # "キャベツ", > # "野菜" > # ], > # [ > # 4, > # "キューリ", > # "野菜" > # ], > # [ > # 1, > # "りんご", > # "果物" > # ], > # [ > # 3, > # "もも", > # "果物" > # ], > # [ > # 2, > # "バナナ", > # "果物" > # ] > # ] > # ] > # ] > ---- > > > -- > 須藤 功平 <kou****@clear*****> > 株式会社クリアコード <http://www.clear-code.com/> > > Groongaベースの全文検索システムを総合サポート: > http://groonga.org/ja/support/ > パッチ採用 - プログラミングが楽しい人向けの採用プロセス: > http://www.clear-code.com/recruitment/ > コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: > http://www.clear-code.com/services/code-reader/ > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.osdn.me/mailman/listinfo/groonga-dev > -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...Download