Kouhei Sutou
kou****@clear*****
2014年 12月 13日 (土) 13:51:50 JST
須藤です。 In <CACEC****@mail*****> "[groonga-dev,03010] Re: [ANN] Droonga 1.0.9" on Fri, 12 Dec 2014 18:28:37 +0900, funa 1g <funa1****@gmail*****> wrote: > 重ねてご確認で申し訳ないのですが、DroongaではUInt64のベクターカラムに対してインデックスは設定できないのでしょうか。 > 下のようなスキーマを設定してみましたが、その下のようなエラーが出て、addメソッドによる登録ができませんでした(loadでも駄目でした)。 > > スキーマ > {"dataset":"Default","type":"table_create","body":{"name":"TestIndex","flags":"TABLE_HASH_KEY","key_type":"UInt64"}} > {"dataset":"Default","type":"table_create","body":{"name":"Test","flags":"TABLE_HASH_KEY","key_type":"UInt64"}} > {"dataset":"Default","type":"column_create","body":{"table":"Test","name":"ids","flags":"COLUMN_VECTOR","type":"TestIndex"}} ここのtypeはUInt64にしてください! インデックス用のテーブルのキーの型 と インデックス対象の値の型 は揃えないといけないのです! ----気になる人向けの補足 厳密に言うと、 インデックス用のテーブルのキーの型 と インデックス対象の値の型 を揃えるのではなく、 インデックス用のテーブルのキーの型 (↑は同じだった) と インデックス対象の値をトークナイズした後の個々のトークンの型 (↑が厳密には違った) を揃える必要があります。 各トークンがインデックス用のテーブルのキーになるので、↑のよ うに型を揃える必要があるのです。 で、今回の場合は インデックス用のテーブルのキーの型 と インデックス対象の値の型 という説明で問題がないのは、今回のインデックス用のテーブルは トークナイザーが指定されていないので、値そのものがトークンに なるからです。値そのものがトークンになるので、値の型とテーブ ルのキーの型を揃えればよいのです。 ---- -- 須藤 功平 <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/