Ich habe einige Probleme mit dem Volltextoperator CONTAINS. Hier ist ein kurzes Skript, um zu zeigen, was ich tue. Beachten Sie, dass die WAITFOR-Zeile dem Volltextindex lediglich einen Moment Zeit gibt, sich zu füllen.
create table test1 ( id int constraint pk primary key, string nvarchar(100) not null );
insert into test1 values (1, 'dog')
insert into test1 values (2, 'dogbreed')
insert into test1 values (3, 'dogbreedinfo')
insert into test1 values (4, 'dogs')
insert into test1 values (5, 'breeds')
insert into test1 values (6, 'breed')
insert into test1 values (7, 'breeddogs')
go
create fulltext catalog cat1
create fulltext index on test1 (string) key index pk on cat1
waitfor delay '00:00:03'
go
select * from test1 where contains (string, '"*dog*"')
go
drop table test1
drop fulltext catalog cat1
Die zurückgegebene Ergebnismenge ist:
1 dog
2 dogbreed
3 dogbreedinfo
4 dogs
Warum wird der Datensatz #7 "breeddogs" nicht zurückgegeben?
EDIT
Gibt es einen anderen Weg, wie ich nach Zeichenfolgen suchen sollte, die in anderen Zeichenfolgen enthalten sind? Eine Möglichkeit, die schneller ist als LIKE '%searchword%'?