2014-12-23 2 views
0

У меня есть полнотекстовый каталог на моей таблице, когда я удаляю первую пару символов строку поиска, которую он больше не может найти. но когда я удаляю последнюю пару, он находит нужные продукты.Полнотекстовый поиск не находит результаты, удаляя символы на шрифте строки

Когда я узнал, что я протестировал поведение на другом сайте/сервере, и там он полностью работает, не имеет значения, удалю ли некоторые символы спереди или назад, он все еще находит мои продукты.

Рабочая:

SELECT ProductId FROM Product WHERE CONTAINS((FreeTextSearchString),'"*ij2001AR*"') 
SELECT ProductId FROM Product WHERE CONTAINS((FreeTextSearchString),'"*ij2001*"') 

Не работает:

SELECT ProductId FROM Product WHERE CONTAINS((FreeTextSearchString),'"*2001AR*"') 

Почему это ведет себя, как это? И что я могу сделать, чтобы исправить это?

ответ

1

согласно моим наблюдениям на Query 7 (CONTAINS)

SELECT * FROM content WHERE contains(Description,' "*azine" ') 

Вы не можете использовать звездочку в качестве заполнителя для префикса.

0

Глядя на MSDN для СОДЕРЖИТ Синтаксис кажется, что вы должны передать колонку, где искомая в качестве первого аргумента:

DECLARE @SearchWord varchar(30) 
SET @SearchWord ='performance' 
SELECT Description 
FROM Production.ProductDescription 
WHERE CONTAINS(Description, @SearchWord); 

В приведенном выше примере, если вы фильтрование поля Описания для «перфорации» без *, он должен возвращать строку с «производительностью» в описании поля, не так ли?

Ссылка на ссылку msdn: msdn