Как искать строку SQl Server на основе абзаца, в частности, слов в абзаце, а не точного абзаца - PullRequest
1 голос
/ 01 июня 2009

Я хочу использовать SQL Server 2005 Express, чтобы найти пять лучших кортежей, связанных с абзацем текста. Я знаю, что могу использовать полнотекстовое индексирование и CONTAINSTABLE, чтобы найти строки, содержащие точную фразу, но как мне получить, чтобы она возвращала наиболее близкие совпадения со словами в абзаце, а не с точным абзацем.

Пока что единственный способ, о котором я могу думать, - это разделить запрос CONTAINSTABLE, вставляя 'или' для каждого пробела, генерируя запрос в соответствии со строками следующего, но обеспокоен производительностью (и стоп-словами). 1003 *

SELECT  id, FT.rank, description
FROM    SearchTable
    INNER JOIN CONTAINSTABLE (SearchTable, *, 
            '"This" OR "is" OR "my" OR "paragraph"') AS FT 
            ON SearchTable.id = FT.[key]
ORDER BY Rank DESC

Я ожидаю, что есть стандартное решение этой проблемы - кто-нибудь знает, что это такое?

1 Ответ

2 голосов
/ 01 июня 2009

Вы пробовали FREETEXT и FREETEXTTABLE, которые должны делать то, что вы пытаетесь сделать?

http://msdn.microsoft.com/en-us/library/cc879300.aspx

...