[Groonga-mysql-commit] mroonga/mroonga [master] add tests for fulltext search on wrapper mode. refs #925

Back to archive index

null+****@clear***** null+****@clear*****
2011年 6月 9日 (木) 16:31:40 JST


Kouhei Sutou	2011-06-09 07:31:40 +0000 (Thu, 09 Jun 2011)

  New Revision: 2e719b395919d6ce680544acf49f6ea0fa71fca3

  Log:
    add tests for fulltext search on wrapper mode. refs #925
    
    NOTE: It's not worked yet.

  Added files:
    test/sql/r/fulltext_wrapper.result
    test/sql/t/fulltext_wrapper.test
  Modified files:
    test/sql/r/Makefile.am
    test/sql/t/Makefile.am

  Modified: test/sql/r/Makefile.am (+12 -0)
===================================================================
--- test/sql/r/Makefile.am    2011-06-09 07:01:41 +0000 (4857fd1)
+++ test/sql/r/Makefile.am    2011-06-09 07:31:40 +0000 (8427497)
@@ -1,15 +1,27 @@
 # ls *.result | sort | sed -e 's/^/\t/'
 EXTRA_DIST =					\
+	auto_increment.result			\
+	binlog.result				\
 	btree.result				\
+	count_performance.result		\
 	create_table.result			\
+	create_table_wrapper.result		\
 	delete.result				\
 	drop_database.result			\
 	drop_table.result			\
+	flush_logs.result			\
 	fulltext.result				\
+	fulltext_wrapper.result			\
 	hash.result				\
+	information_schema.result		\
 	insert.result				\
+	last_insert_grn_id.result		\
+	log_level.result			\
+	order_limit_performance.result		\
+	replace.result				\
 	select_all.result			\
 	select_pkey.result			\
+	select_secondary_key.result		\
 	show_create_table.result		\
 	show_table_status.result		\
 	update.result

  Added: test/sql/r/fulltext_wrapper.result (+202 -0) 100644
===================================================================
--- /dev/null
+++ test/sql/r/fulltext_wrapper.result    2011-06-09 07:31:40 +0000 (607d966)
@@ -0,0 +1,202 @@
+drop table if exists t1, t2, t3;
+create table t1 (c1 int primary key, c2 text, fulltext index ft (c2)) COMMENT = 'engine "innodb"';
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `c1` int(11) NOT NULL,
+  `c2` text,
+  PRIMARY KEY (`c1`),
+  FULLTEXT KEY `ft` (`c2`)
+) ENGINE=groonga DEFAULT CHARSET=latin1
+insert into t1 values (1, "hoge hoge");
+insert into t1 values (2, "fuga fuga");
+insert into t1 values (3, "moge moge");
+select * from t1;
+c1	c2
+1	hoge hoge
+2	fuga fuga
+3	moge moge
+flush tables;
+select * from t1;
+c1	c2
+1	hoge hoge
+2	fuga fuga
+3	moge moge
+drop table t1;
+create table t1 (c1 int primary key, c2 int, c3 text, fulltext index ft(c3)) COMMENT = 'engine "innodb"';
+insert into t1 values(1,10,"aa ii uu ee oo");
+insert into t1 values(2,20,"ka ki ku ke ko");
+insert into t1 values(3,30,"sa si su se so");
+insert into t1 values(4,40,"ta ti tu te to");
+insert into t1 values(5,50,"aa ii uu ee oo");
+select * from t1;
+c1	c2	c3
+1	10	aa ii uu ee oo
+2	20	ka ki ku ke ko
+3	30	sa si su se so
+4	40	ta ti tu te to
+5	50	aa ii uu ee oo
+select * from t1 where match(c3) against("su");
+c1	c2	c3
+3	30	sa si su se so
+select * from t1 where match(c3) against("ii");
+c1	c2	c3
+1	10	aa ii uu ee oo
+5	50	aa ii uu ee oo
+select * from t1 where match(c3) against("+su" in boolean mode);
+c1	c2	c3
+3	30	sa si su se so
+select * from t1 where match(c3) against("+ii" in boolean mode);
+c1	c2	c3
+1	10	aa ii uu ee oo
+5	50	aa ii uu ee oo
+drop table t1;
+set names utf8;
+create table t1 (c1 int primary key, c2 varchar(255), c3 text, fulltext index(c2), fulltext index(c3)) default charset utf8;
+insert into t1 values(1, "明日の富士山の天気について","あああああああ");
+insert into t1 values(2, "いいいいい","明日の富士山の天気は分かりません");
+insert into t1 values(3, "dummy", "dummy");
+select * from t1;
+c1	c2	c3
+1	明日の富士山の天気について	あああああああ
+2	いいいいい	明日の富士山の天気は分かりません
+3	dummy	dummy
+select * from t1 where match(c2) against("富士山");
+c1	c2	c3
+1	明日の富士山の天気について	あああああああ
+select * from t1 where match(c3) against("富士山");
+c1	c2	c3
+2	いいいいい	明日の富士山の天気は分かりません
+drop table t1;
+create table t1 (c1 int primary key, c2 varchar(100), _score float, fulltext index(c2)) default charset utf8;
+create table t2 (c1 int primary key, c2 text, _score float, fulltext index(c2)) default charset utf8;
+insert into t1 values (1, "aa ii uu ee oo", null);
+insert into t1 values (2, "ka ki ku ke ko", null);
+insert into t1 values (3, "aa ii ii ii oo", null);
+insert into t1 values (4, "sa si su se so", null);
+insert into t1 values (5, "ta ti ii ii to", null);
+insert into t2 (c1,c2) select c1,c2 from t1;
+select * from t1;
+c1	c2	_score
+1	aa ii uu ee oo	0
+2	ka ki ku ke ko	0
+3	aa ii ii ii oo	0
+4	sa si su se so	0
+5	ta ti ii ii to	0
+select * from t2;
+c1	c2	_score
+1	aa ii uu ee oo	0
+2	ka ki ku ke ko	0
+3	aa ii ii ii oo	0
+4	sa si su se so	0
+5	ta ti ii ii to	0
+select * from t1 where c1=3;
+c1	c2	_score
+3	aa ii ii ii oo	0
+select * from t2 where c1=3;
+c1	c2	_score
+3	aa ii ii ii oo	0
+select * from t1 where c1>3 order by c1 desc;
+c1	c2	_score
+5	ta ti ii ii to	0
+4	sa si su se so	0
+select * from t2 where c1>3 order by c1 asc;
+c1	c2	_score
+4	sa si su se so	0
+5	ta ti ii ii to	0
+select * from t1 where c2>"s" order by c2 desc;
+c1	c2	_score
+5	ta ti ii ii to	0
+4	sa si su se so	0
+select * from t2 where c2>"s" order by c1 asc;
+c1	c2	_score
+4	sa si su se so	0
+5	ta ti ii ii to	0
+select * from t1 where match(c2) against("ii") order by _score desc;
+c1	c2	_score
+3	aa ii ii ii oo	3
+5	ta ti ii ii to	2
+1	aa ii uu ee oo	1
+select * from t2 where match(c2) against("ii") order by _score asc;
+c1	c2	_score
+1	aa ii uu ee oo	1
+5	ta ti ii ii to	2
+3	aa ii ii ii oo	3
+select c1,c2,match(c2) against("ii") from t1 where match(c2) against("ii");
+c1	c2	match(c2) against("ii")
+1	aa ii uu ee oo	-1
+3	aa ii ii ii oo	-1
+5	ta ti ii ii to	-1
+select c1,c2,match(c2) against("ii") from t1 where match(c2) against("ii");
+c1	c2	match(c2) against("ii")
+1	aa ii uu ee oo	-1
+3	aa ii ii ii oo	-1
+5	ta ti ii ii to	-1
+drop table t1,t2;
+create table t1 (c1 int primary key, c2 int, c3 text, _score float, fulltext index ft(c3)) COMMENT = 'engine "innodb"';
+insert into t1 values(1,10,"aa ii uu ee oo",null);
+insert into t1 values(2,10,"ka ki ku ke ko",null);
+insert into t1 values(3,10,"aa ii uu ee oo",null);
+insert into t1 values(4,10,"ka ki ku ke ko",null);
+insert into t1 values(5,20,"aa ii uu ee oo",null);
+insert into t1 values(6,20,"ka ki ku ke ko",null);
+insert into t1 values(7,20,"aa ii uu ee oo",null);
+insert into t1 values(8,20,"ka ki ku ke ko",null);
+select * from t1;
+c1	c2	c3	_score
+1	10	aa ii uu ee oo	0
+2	10	ka ki ku ke ko	0
+3	10	aa ii uu ee oo	0
+4	10	ka ki ku ke ko	0
+5	20	aa ii uu ee oo	0
+6	20	ka ki ku ke ko	0
+7	20	aa ii uu ee oo	0
+8	20	ka ki ku ke ko	0
+select * from t1 where match(c3) against("uu");
+c1	c2	c3	_score
+1	10	aa ii uu ee oo	1
+3	10	aa ii uu ee oo	1
+5	20	aa ii uu ee oo	1
+7	20	aa ii uu ee oo	1
+select * from t1 where not match(c3) against("uu");
+c1	c2	c3	_score
+2	10	ka ki ku ke ko	0
+4	10	ka ki ku ke ko	0
+6	20	ka ki ku ke ko	0
+8	20	ka ki ku ke ko	0
+select * from t1 where match(c3) against("dummy");
+c1	c2	c3	_score
+select * from t1 where not match(c3) against("dummy");
+c1	c2	c3	_score
+1	10	aa ii uu ee oo	0
+2	10	ka ki ku ke ko	0
+3	10	aa ii uu ee oo	0
+4	10	ka ki ku ke ko	0
+5	20	aa ii uu ee oo	0
+6	20	ka ki ku ke ko	0
+7	20	aa ii uu ee oo	0
+8	20	ka ki ku ke ko	0
+select * from t1 where c1 = 4 and not match(c3) against("uu");
+c1	c2	c3	_score
+4	10	ka ki ku ke ko	0
+select * from t1 where c1 <= 4 and not match(c3) against("uu");
+c1	c2	c3	_score
+2	10	ka ki ku ke ko	0
+4	10	ka ki ku ke ko	0
+select * from t1 where c1 > 4 and not match(c3) against("uu");
+c1	c2	c3	_score
+6	20	ka ki ku ke ko	0
+8	20	ka ki ku ke ko	0
+select * from t1 where c2 = 10 and not match(c3) against("uu");
+c1	c2	c3	_score
+2	10	ka ki ku ke ko	0
+4	10	ka ki ku ke ko	0
+select * from t1 where c2 >= 15 and not match(c3) against("uu");
+c1	c2	c3	_score
+6	20	ka ki ku ke ko	0
+8	20	ka ki ku ke ko	0
+select * from t1 where c2 < 15 and not match(c3) against("uu");
+c1	c2	c3	_score
+2	10	ka ki ku ke ko	0
+4	10	ka ki ku ke ko	0
+drop table t1;

  Modified: test/sql/t/Makefile.am (+12 -0)
===================================================================
--- test/sql/t/Makefile.am    2011-06-09 07:01:41 +0000 (e55e68f)
+++ test/sql/t/Makefile.am    2011-06-09 07:31:40 +0000 (0ecd1f4)
@@ -1,15 +1,27 @@
 # ls *.test | sort | sed -e 's/^/\t/'
 EXTRA_DIST =					\
+	auto_increment.test			\
+	binlog.test				\
 	btree.test				\
+	count_performance.test			\
 	create_table.test			\
+	create_table_wrapper.test		\
 	delete.test				\
 	drop_database.test			\
 	drop_table.test				\
+	flush_logs.test				\
 	fulltext.test				\
+	fulltext_wrapper.test			\
 	hash.test				\
+	information_schema.test			\
 	insert.test				\
+	last_insert_grn_id.test			\
+	log_level.test				\
+	order_limit_performance.test		\
+	replace.test				\
 	select_all.test				\
 	select_pkey.test			\
+	select_secondary_key.test		\
 	show_create_table.test			\
 	show_table_status.test			\
 	update.test

  Added: test/sql/t/fulltext_wrapper.test (+102 -0) 100644
===================================================================
--- /dev/null
+++ test/sql/t/fulltext_wrapper.test    2011-06-09 07:31:40 +0000 (190348d)
@@ -0,0 +1,102 @@
+# Copyright(C) 2010 Tetsuro IKEDA
+# Copyright(C) 2011 Kouhei Sutou <kou****@clear*****>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+--source suite/groonga/include/groonga.inc
+
+--disable_warnings
+drop table if exists t1, t2, t3;
+--enable_warnings
+
+create table t1 (c1 int primary key, c2 text, fulltext index ft (c2)) COMMENT = 'engine "innodb"';
+show create table t1;
+insert into t1 values (1, "hoge hoge");
+insert into t1 values (2, "fuga fuga");
+insert into t1 values (3, "moge moge");
+select * from t1;
+flush tables;
+select * from t1;
+drop table t1;
+
+create table t1 (c1 int primary key, c2 int, c3 text, fulltext index ft(c3)) COMMENT = 'engine "innodb"';
+insert into t1 values(1,10,"aa ii uu ee oo");
+insert into t1 values(2,20,"ka ki ku ke ko");
+insert into t1 values(3,30,"sa si su se so");
+insert into t1 values(4,40,"ta ti tu te to");
+insert into t1 values(5,50,"aa ii uu ee oo");
+select * from t1;
+select * from t1 where match(c3) against("su");
+select * from t1 where match(c3) against("ii");
+select * from t1 where match(c3) against("+su" in boolean mode);
+select * from t1 where match(c3) against("+ii" in boolean mode);
+drop table t1;
+
+set names utf8;
+create table t1 (c1 int primary key, c2 varchar(255), c3 text, fulltext index(c2), fulltext index(c3)) default charset utf8;
+insert into t1 values(1, "明日の富士山の天気について","あああああああ");
+insert into t1 values(2, "いいいいい","明日の富士山の天気は分かりません");
+insert into t1 values(3, "dummy", "dummy");
+select * from t1;
+select * from t1 where match(c2) against("富士山");
+select * from t1 where match(c3) against("富士山");
+drop table t1;
+
+create table t1 (c1 int primary key, c2 varchar(100), _score float, fulltext index(c2)) default charset utf8;
+create table t2 (c1 int primary key, c2 text, _score float, fulltext index(c2)) default charset utf8;
+insert into t1 values (1, "aa ii uu ee oo", null);
+insert into t1 values (2, "ka ki ku ke ko", null);
+insert into t1 values (3, "aa ii ii ii oo", null);
+insert into t1 values (4, "sa si su se so", null);
+insert into t1 values (5, "ta ti ii ii to", null);
+insert into t2 (c1,c2) select c1,c2 from t1;
+select * from t1;
+select * from t2;
+select * from t1 where c1=3;
+select * from t2 where c1=3;
+select * from t1 where c1>3 order by c1 desc;
+select * from t2 where c1>3 order by c1 asc;
+select * from t1 where c2>"s" order by c2 desc;
+select * from t2 where c2>"s" order by c1 asc;
+select * from t1 where match(c2) against("ii") order by _score desc;
+select * from t2 where match(c2) against("ii") order by _score asc;
+select c1,c2,match(c2) against("ii") from t1 where match(c2) against("ii");
+select c1,c2,match(c2) against("ii") from t1 where match(c2) against("ii");
+drop table t1,t2;
+
+# for "not match against"
+create table t1 (c1 int primary key, c2 int, c3 text, _score float, fulltext index ft(c3)) COMMENT = 'engine "innodb"';
+insert into t1 values(1,10,"aa ii uu ee oo",null);
+insert into t1 values(2,10,"ka ki ku ke ko",null);
+insert into t1 values(3,10,"aa ii uu ee oo",null);
+insert into t1 values(4,10,"ka ki ku ke ko",null);
+insert into t1 values(5,20,"aa ii uu ee oo",null);
+insert into t1 values(6,20,"ka ki ku ke ko",null);
+insert into t1 values(7,20,"aa ii uu ee oo",null);
+insert into t1 values(8,20,"ka ki ku ke ko",null);
+select * from t1;
+select * from t1 where match(c3) against("uu");
+select * from t1 where not match(c3) against("uu");
+select * from t1 where match(c3) against("dummy");
+select * from t1 where not match(c3) against("dummy");
+select * from t1 where c1 = 4 and not match(c3) against("uu");
+select * from t1 where c1 <= 4 and not match(c3) against("uu");
+select * from t1 where c1 > 4 and not match(c3) against("uu");
+select * from t1 where c2 = 10 and not match(c3) against("uu");
+select * from t1 where c2 >= 15 and not match(c3) against("uu");
+select * from t1 where c2 < 15 and not match(c3) against("uu");
+drop table t1;
+
+--source suite/groonga/include/groonga_deinit.inc




Groonga-mysql-commit メーリングリストの案内
Back to archive index