Спасибо за эти ответы. Я знаком с ссылочными функциями, но не уверен, что они делают то, что мне нужно. Например:
SELECT P.id, 'Product' AS Type, FT.rank, C.url + '/' + P.url AS url, longTitle, shortTitle, P.description
FROM Products P
INNER JOIN CONTAINSTABLE (Products, (longTitle, shortTitle), '"my text content"') AS FT ON P.id = FT.[key]
LEFT JOIN Product_Categories PC ON P.id = PC.productID
LEFT Join Categories C ON C.id = PC.categoryID
WHERE [primary] = 1
ORDER BY rank DESC
возвращает только строки с точной фразой «мое текстовое содержимое» - мне нужно вернуть строки только с «текстом», но с более низким рейтингом. Если я изменю запрос следующим образом:
SELECT P.id, 'Product' AS Type, FT.rank, C.url + '/' + P.url AS url, longTitle, shortTitle, P.description
FROM Products P
INNER JOIN CONTAINSTABLE (Products, (longTitle, shortTitle), '"my" or "text" or "content"') AS FT ON P.id = FT.[key]
LEFT JOIN Product_Categories PC ON P.id = PC.productID
LEFT Join Categories C ON C.id = PC.categoryID
WHERE [primary] = 1
ORDER BY rank DESC
Я получаю больше строк, но строки со всеми тремя словами не выглядят явно выше, чем строки с 1 словом.
Есть еще мысли?