Naoya Murakami
visio****@gmail*****
2013年 9月 16日 (月) 17:53:42 JST
お世話になっております。村上です。
mroongaで作ったベクターカラムに対して、フルテキストインデックス
をオフラインインデックス構築をすると、インデックスが構築されません。
なお、オンラインインデックス構築の場合は、インデックス構築されます。
また、簡単な再現手順は用意できなかったのですが、ベクターカラムに
数百万ほど登録した状態でオフラインインデックス構築すると、デッドロック
で落ちます。
インデックスが作られないことと同じ理由かわかりませんが、必要であれば、
再現可能なデータを提供することは可能です。
ベクターカラムに対してオフラインインデックス構築ができるようにできない
でしょうか?
・オフラインインデックス後はインデックステーブルになにも登録されていない
mysql> select mroonga_command('select Bugs-tags_ft');
+------------------------------------------------------------------+
| mroonga_command('select Bugs-tags_ft') |
+------------------------------------------------------------------+
| [[[0],[["_id","UInt32"],["_key","ShortText"],["index","Bugs"]]]] |
+------------------------------------------------------------------+
・オンラインインデックス構築後は登録されている
mysql> select mroonga_command('select Bugs-tags_ft');
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mroonga_command('select
Bugs-tags_ft')
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
[[[20],[["_id","UInt32"],["_key","ShortText"],["index","Bugs"]],[20,"a",1],[10,"ac",1],[11,"cl",1],[4,"do",4],[13,"e",1],[19,"ga",1],[2,"in",5],[12,"le",1],[3,"nd",6],[18,"ng",1]]]
|
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
・再現手順
CREATE TABLE Tags (
name VARCHAR(64) PRIMARY KEY
) DEFAULT CHARSET=utf8
COLLATE=utf8_bin
COMMENT='default_tokenizer "TokenDelimit"';
CREATE TABLE Bugs (
id INT UNSIGNED PRIMARY KEY,
tags TEXT COMMENT 'flags "COLUMN_VECTOR", type "Tags"',
FULLTEXT INDEX tags_ft (tags) COMMENT 'parser
"TokenBigramSplitSymbolAlphaDigit", normalizer "NormalizerAuto"',
FULLTEXT INDEX tags (tags) COMMENT 'table "Tags"'
) DEFAULT CHARSET=utf8;
alter table Bugs disable keys;
insert into Bugs value (1,"Linux MySQL groonga");
insert into Bugs value (2,"Unix Postgres mroonga");
alter table Bugs enable keys;
select mroonga_command('select Bugs-tags_ft');
insert into Bugs value (3,"Windows Oracle rroonga");
select mroonga_command('select Bugs-tags_ft');
以上、よろしくお願いします。