Настройка FreeTextTable в MS SQL 2000 - PullRequest
0 голосов
/ 27 октября 2009

Я ищу ответы на следующие 2 вопроса (SQL Server 2000). У меня есть таблица с информацией о заказе, которая проиндексирована, чтобы я мог искать данные по определенным столбцам. Итак, пример запроса, который я мог бы выполнить:

SELECT top 50 ft_tbl.*, key_tbl.Rank
from OrderInfo as ft_tbl
    INNER JOIN FREETEXTTABLE(OrderInfo, Address1, 'W Main St') as key_tbl
    ON ft_tbl.OrderInfoID = key_tbl.[KEY]
order by key_tbl.Rank desc

Я ожидал бы, что SQL сначала извлечет все, что соответствует "W Main St", поскольку оно будет иметь самый высокий ранг, а затем - варианты. Тем не менее, мои результаты не совсем то, что я ожидаю. Вот 8 лучших результатов, упорядоченных по рангу:

  • 258 Вт Main St
  • 4322 N Marshall St
  • 221 Main St
  • 320 Брод St
  • 7 S 3-й ст
  • 510 Bauerlein St
  • 175 Мейн-стрит
  • 108 Maywood St

(я знаю, почему это происходит сейчас, и я предполагаю, что смогу исправить это с помощью ответа ниже)

Вопрос: есть ли способ перейти в вариации, где St может быть:

  • St.
  • Улица

И W может быть

  • W
  • W.
  • Запад

Заранее спасибо! (Выпуклость)

1 Ответ

0 голосов
/ 18 ноября 2009

Не уверен, что вы нашли ответ на этот вопрос, но я думаю, что было бы возможно использовать предложение Contains, чтобы учесть эти варианты. Оба они предлагают довольно хорошие ресурсы.

http://www.eggheadcafe.com/articles/20010422.asp

http://en.wikipedia.org/wiki/SQL_Server_Full_Text_Search#Inflectional_Searches

...