28 lines
558 B
SQL
28 lines
558 B
SQL
SELECT
|
|
PageId,
|
|
SUM([Match]) as [Match],
|
|
SUM([Weight]) as [Weight],
|
|
SUM([Score]) as [Score]
|
|
FROM
|
|
(
|
|
SELECT
|
|
T.PageId,
|
|
COUNT(DISTINCT T.Token) / (@TokenCount + 0.0) as [Match],
|
|
SUM(T.[Weight] * 1.5) as [Weight],
|
|
--Extra weight on score for exact matches:
|
|
SUM(T.[Weight] * 1.5) * (COUNT(DISTINCT T.Token) / (@TokenCount + 0.0)) as [Score]
|
|
FROM
|
|
PageToken as T
|
|
INNER JOIN TempSearchTerms as ST
|
|
ON ST.Token = T.Token
|
|
GROUP BY
|
|
T.PageId
|
|
) as T
|
|
GROUP BY
|
|
T.PageId
|
|
HAVING
|
|
SUM(Score) >= @MinimumMatchScore
|
|
ORDER BY
|
|
SUM([Score]) DESC
|
|
LIMIT 250;
|