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