2011-01-26 3 views
3

У меня есть таблица:SQL Server 2008 - полнотекстовый поиск

WID   WName 
2   Looking for Data 
6   What data is here 
7   Nothing 
8   Here we go again 

Я создал полнотекстовый каталог на колонке WName.

Когда я использую:

SELECT * FROM Workspace WHERE CONTAINS (WorkspaceName, ' "data* here*" ') -- Nothing 
SELECT * FROM Workspace WHERE FREETEXT (WorkspaceName, 'data*') -- Row ID: 2,6 
SELECT * FROM Workspace WHERE FREETEXT (WorkspaceName, 'here*') -- Nothing 
SELECT * FROM Workspace WHERE FREETEXT (WorkspaceName, '*ere*') -- Nothing 
SELECT * FROM Workspace WHERE FREETEXT (WorkspaceName, 'here') -- Nothing 
SELECT * FROM Workspace WHERE FREETEXT (WorkspaceName, 'data') --Row ID: 2,6 

Это не те результаты, которые я ожидал.

То, что я хочу быть в состоянии сделать это: Если бы я был столбец цвета со значениями

red 
blue 
blueberry 
yellow, blue 

Я хочу использовать поиск «красный голубой» и имеют все вышеперечисленные строки возвращаются ,

Возможно ли это?

ответ

3
SELECT * 
FROM workspace 
WHERE CONTAINS(WorkspaceName, '"red*" OR "blue*"') 
+0

Когда я ввожу это: – Don

+0

Когда я вхожу, используя свою исходную таблицу: SELECT * FROM рабочего пространства WHERE СОДЕРЖАЩЕГО (WorkspaceName, «данные *" ИЛИ „здесь *“») я до сих пор только получить строки 2 и 6 Почему строка ID 8 не возвращается? – Don

+0

@Don: 'here' - это секундомер в локали английского языка. Вы должны создать пустой стоп-лист (с одним пробелом как секундомер) и воссоздать индекс, если хотите, чтобы все было проиндексировано. – Quassnoi

Смежные вопросы