(8.0)
https://techblog.gmo-ap.jp/2020/01/06/mysql-innodb-fulltext-search-tuto/
drop table tab1;
create table tab1(col1 int primary key,col2 varchar(100) );
insert into tab1 values(1,'test1あああ');
insert into tab1 values(2,'test2いいい');
insert into tab1 values(3,'test3ううう');
select * from tab1;
ALTER TABLE tab1 ADD FULLTEXT INDEX ind1 (col2) WITH PARSER ngram;
show warnings;
explain select * from tab1 where match (col2) against ('あああ' in boolean mode);
set global innodb_ft_aux_table="test/tab1";
select * from information_schema.innodb_ft_index_table order by doc_id, position limit 30;
select @@ngram_token_size;
(12cR1)
https://blogs.oracle.com/oracle4engineer/oracle-text-v5
Oracle Text
-- インストール
conn / as sysdba
@/u01/app/oracle/product/12.1.0/dbhome_1/ctx/admin/catctx.sql CTXSYS SYSAUX TEMP NOLOCK
conn CTXSYS/CTXSYS
@/u01/app/oracle/product/12.1.0/dbhome_1/ctx/admin/defaults/dr0defin.sql "AMERICAN"
conn / as sysdba
@/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/dbmsxdbt.sql
-- 動作確認
conn CTXSYS/CTXSYS
grant ctxapp to test;
conn test/test
drop table tab1 purge;
create table tab1(col1 int primary key,col2 varchar2(100) );
insert into tab1 values(1,'test1あああ');
insert into tab1 values(2,'test2いいい');
insert into tab1 values(3,'test3ううう');
commit;
select * from tab1;
exec ctx_ddl.create_preference('lexer1','JAPANESE_VGRAM_LEXER');
select * from CTX_USER_PREFERENCES;
create index ind1 on tab1(col2) indextype is ctxsys.context parameters('lexer lexer1');
explain plan for
select * from tab1 where contains( col2, 'あああ') > 0;
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());
(11)
pg_bigm
http://www.denzow.me/entry/2017/09/09/093548
yum install https://osdn.net/projects/pgbigm/downloads/72448/pg_bigm-1.2.20200228-1.pg11.el7.centos.x86_64.rpm
vim postgresql.conf
shared_preload_libraries = 'pg_bigm'
sudo systemctl restart postgresql-11
sudo systemctl status postgresql-11
create extension pg_bigm;
\dx
drop table tab1;
create table tab1(col1 int primary key,col2 varchar(100) );
insert into tab1 values(1,'test1あああ');
insert into tab1 values(2,'test2いいい');
insert into tab1 values(3,'test3ううう');
select * from tab1;
create index ind1 on tab1 using gin (col2 gin_bigm_ops);
set enable_seqscan=off;
explain analyze select * from tab1 where col2 like '%あああ%';
(2019)
drop table tab1;
create table tab1(col1 int not null,col2 varchar(100) );
alter table tab1 add constraint tab1pk primary key(col1);
insert into tab1 values(1,'test1あああ');
insert into tab1 values(2,'test2いいい');
insert into tab1 values(3,'test3ううう');
select * from tab1;
create fulltext catalog ft as default;
create fulltext index on tab1(col2)
key index tab1pk
with stoplist = system;
set showplan_all on;
go
select * from tab1 where contains(col2,'あああ');