[groonga-dev,03014] Re: [ANN] Droonga 1.0.9

Back to archive index

funa 1g funa1****@gmail*****
2014年 12月 15日 (月) 21:49:28 JST


ふなとです。

須藤さんご説明ありがとうございます。

ご指摘の通り、以下のようなスキーマで試してみたのですが、意図した結果が得られませんでした。

{"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":"UInt64"}}
{"dataset":"Default","type":"column_create","body":{"table":"TestIndex","name":"index_ids","flags":"COLUMN_INDEX","type":"Test","source":"ids"}}

このあとに、Testテーブルに値をロードすれば、TestIndexテーブルに、idsカラムのインデックスが作成されることを想定しています。
しかし、実際には、Testテーブルに値をロードすることはできるのですが、TestIndexのカラムの中身は空になっています。
groongaでも等価な以下のスキーマで試してみましたが、同様の結果になりました。
数字のベクターでも、インデックスが作成されるという想定が誤っていますでしょうか。

table_create Test TABLE_HASH_KEY UInt64
table_create TestIndex TABLE_HASH_KEY UInt64
column_create Test ids COLUMN_VECTOR UInt64
column_create TestIndex index_ids COLUMN_INDEX Test ids

load --table Test
[
["_key","ids"],
[1,2,[10,20]],
[2,3,[20]],
[3,2,[]]
]

> select TestIndex
[[0,1418647396.57223,0.000364065170288086],[[[0],[["_id","UInt32"],["_key","UInt64"],["index_ids","UInt32"]]]]]

2014年12月13日 13:51 Kouhei Sutou <kou****@clear*****>:
> 須藤です。
>
> 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/
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev



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