СОДЕРЖАЩИЙ запрос, не распознающий маленькие слова - PullRequest
4 голосов
/ 29 сентября 2010

Я использую CONTAINSTABLE для поиска в двух столбцах таблицы.Как только поиск содержит маленькие слова, такие как '' 'для' 'a', поиск не дает результатов, даже если они фактически присутствуют в столбце.

Быстрый пример.Колонка, в которой выполняется поиск, содержит текст.«Систему необходимо обновить»

После SQL возвращается 0 строк

SELECT     * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM         [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "to" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "to" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))

Если пропущено «to», оно прекрасно работает:

SELECT     * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM         [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))

Как можно CONTAINSTABLE использовать с этими более мелкими словами, или они должны быть опущены в целом?Если эти меньшие слова действительно значимы в поиске, как они могут быть включены в поиск?

Ответы [ 2 ]

3 голосов
/ 29 сентября 2010

Это не «маленькие слова», это обычные слова, которые находятся в стоп-листе.Они игнорируются.

См. Стоп-слова и стоп-листы на BOL.

1 голос
/ 29 сентября 2010

См. в конце моего ответа о создании и использовании настраиваемого полнотекстового стоп-листа, начиная с пустого. Я проверил, и с пустым ваш запрос работает с "to", "be", "the", "for" и т. Д.

Обновление:

SQL Server 2005 должен иметь MSSQL \ FTData \ noiseENG.txt.
Я бы рекомендовал просмотреть ответы на вопрос «Шумовые слова в полнотекстовом поиске в SQL Server 2005»

...