4 Stimmen

Was stimmt nicht mit meiner Volltextsuchanfrage?

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%'?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X