[groonga-dev,02775] _keyを後から変更したい

Back to archive index

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*****




groonga-dev メーリングリストの案内
Back to archive index