Проблема полнотекстового поиска - PullRequest
2 голосов
/ 22 апреля 2011

причина, по которой я здесь, - полнотекстовый поиск SQL 2005.

Я ищу этот запрос здесь:

declare @SearchText nvarchar(1000)
set @SearchText='Dream';

SELECT  *         
 FROM              
  MashupSearchLookup AS FT_MyTable   WITH (NOLOCK)             
  INNER JOIN FREETEXTTABLE(MyTable, *, @SearchText ) AS KEY_TBL           
  ON FT_MyTable.ID = KEY_TBL.[KEY]  

Когда я ищу football, тогда это показывает 3 строки, что нормально, но когда я ищу foot или ball, тогда никакие записи не возвращаются. Для меня это поиск как соответствие точному случаю.

Могу ли я что-то сделать, чтобы получить результаты для foot и ball тоже?

Спасибо

1 Ответ

1 голос
/ 22 апреля 2011

Для поиска слов, начинающихся с foot, используйте:

SELECT  *
FROM    MashupSearchLookup
WHERE   CONTAINS(*, '"foot*"')

В SQL Server, FULLTEXT запросы не могут совпадать с суффиксами или инфиксами (то есть вы не можете искать "*ball" или "*otba*").

Лучшее, что вы можете сделать, чтобы найти это, это использовать LIKE:

SELECT  *
FROM    MashupSearchLookup
WHERE   col1 LIKE '%ball%'
        OR col2 LIKE '%ball%'

и т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...