shinonon
shino****@jcom*****
2014年 9月 17日 (水) 12:19:03 JST
はじめまして、篠田と申します。 今まで HyperEstraier で構築していた自作のシステムを Groonga にしてみよう と思って検討しています。そこで、Groonga で登録済みのカラムの _key を後か ら変更したいのですが、私が試した中ではできなさそうです。何かいい方法はあ りませんでしょうか? _key を変更する方法を私が知らないだけでしたら杞憂ですが、仮に変更する方 法がなかった場合、Groonga の機能の活用(例えばテーブル作成の工夫や検索条 件の工夫やドリルダウン機能等)や使い方の工夫で、もしかしたらいい解決方法 があるのかもしれませんが、私が調べた中ではいい方法が思いつきません。長文 になって申し訳りませんが、以下にやりたいことを記しますので、どなたかアド バイスがありましたら教えていただけますでしょうか? あるフォルダ構造を持ったデータを扱おうと思っています。 1. /FolderA/article0 2. /FolderA/FolderB/article1 3. /FolderC/article2 フォルダ構造+ファイル名を _key として、内容を body として持ち、_key も body もインデックス型のカラムとします。全文検索は body を query して行い、 通常は filter なし、特定のフォルダ内を検索したいときだけ filter で _key の前方一致を条件にしようと思っています。 そのような中で、仮に FolderA の名前が変更された場合 1,2 の _key を変更し ようと思うのですが、現在の Groonga ではいったん delete した後に新しい _key で load し直すしか方法がなさそうに思えます。 実際には body 以外の属性もたくさんあり、「delete して load し直し」はな るべくやりたくありません。 また、フォルダ構造を独自のハッシュテーブルで管理して、_key をそのハッシュ 値+ファイル名とする方法も検討しましたが、「特定のフォルダ内のみ検索」の filter 条件を前方一致で設定できなくなります。また、FolderB を FolderC の 下に移動するようなケースまで考えると、フォルダ構造のハッシュテーブルでの 管理はかなり困難に思えます。 ……というところで、現在躓いております。 以上、何卒よろしくお願いいたします。 -- 篠田 敦 shino****@jcom*****