[Senna-dev 463] Re: マージテーブルについて

アーカイブの一覧に戻る

morit****@razil***** morit****@razil*****
2007年 2月 12日 (月) 09:40:35 JST


Sennaに興味を持ってくださりありがとうございます!

Mergeテーブルでは show index で正しい情報を出力するところまで
作り込んでいなかったりします。
insert, select 等のDMLは問題なく使えるのではないかと思います。

以下、senna rev298 + mysql-4.0.27 での実行例です。

mysql> CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, body text);
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, body text);
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE total (a INT NOT NULL AUTO_INCREMENT,  body text, KEY(a)) TYPE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;
Query OK, 0 rows affected (0.05 sec)

mysql> CREATE FULLTEXT INDEX xxxx USING SENNA,NGRAM ON total (body);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> CREATE FULLTEXT INDEX xxxx_index USING SENNA,NGRAM ON t1(body);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> CREATE FULLTEXT INDEX xxxx_index USING SENNA,NGRAM ON t2(body);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> INSERT INTO t1 (body) VALUES ("Testing"),("table"),("t1");
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> INSERT INTO t2 (body) VALUES ("Testing"),("table"),("t2");
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM total where match(body) against('table' IN BOOLEAN MODE);
+---+-------+
| a | body  |
+---+-------+
| 2 | table |
| 2 | table |
+---+-------+
2 rows in set (0.01 sec)




>>> Tatsuya Uemura さんは書きました:
> お世話になります。
> りゅうと申します。
> 
> 今回検索エンジンからの乗換えで検証させていただいております。
> 
> Mysqlの4.0.27ではMergeテーブルがサポートされているようですが、
> 以下の
> 現象に悩まされております。
> 
> ■Mergeテーブル
> CREATE FULLTEXT INDEX xxxx USING SENNA,NGRAM ON wwww (body);
> 
> mysql> show index from xxxx;
> +-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
> | Table | Non_unique | Key_name    | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
> +-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
> | xxxx  |          1 | xxxx_index |            1  | body        | A         |          46 |     NULL | NULL   |      |            |         |
> +-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
> 1 row in set (0.00 sec)
> 
> ■子テーブル
> CREATE FULLTEXT INDEX xxxx_index USING SENNA,NGRAM ON yyyyy(body);
> 
> mysql> show index from s00000004038_20070209;
> +-----------------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+--------------------------------+---------+
> | Table                 | Non_unique | Key_name           | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type                     | Comment |
> +-----------------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+--------------------------------+---------+
> | s00000004038_20070209 |          1 | s00000004038_index |            1 | description | A         |           1 |     NULL | NULL   |      | FULLTEXT,SENNA,NORMALIZE,NGRAM |         |
> +-----------------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+--------------------------------+---------+
> 1 row in set (0.00 sec)
> 
> Mergeテーブルは、Sennaのインデックスは使用できないのでしょうか?
> 
> よろしくお願い致します。
> 
> 
> _______________________________________________
> Senna-dev mailing list
> Senna****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> 
--
morita



Senna-dev メーリングリストの案内
アーカイブの一覧に戻る