Files
ZelWiki/ZelWiki.Repository/Scripts/GetExactPageSearchTokens.sql
2025-02-20 15:20:28 +08:00

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;