81 lines
3.1 KiB
SQL
81 lines
3.1 KiB
SQL
SELECT processed_url, title,
|
|
timeK * 4.4 + (visitK + typeK) * 6.5 + typeK * 0.22 + relativeK AS searchRank
|
|
FROM (
|
|
SELECT *,
|
|
CASE
|
|
WHEN processed_url LIKE '[query]%' THEN
|
|
CASE
|
|
WHEN (title like '% [query]%' or title like '[query]%') THEN 12.5
|
|
ELSE 12.3
|
|
END
|
|
ELSE
|
|
CASE
|
|
WHEN processed_url LIKE '%[query]%' THEN 2.5
|
|
ELSE
|
|
CASE
|
|
WHEN (title like '% [query]%' or title like '[query]%') THEN 1.6
|
|
ELSE -1
|
|
END
|
|
END
|
|
END AS relativeK
|
|
FROM (
|
|
SELECT *,
|
|
(1 / (5.2 * LOG(38, 0.000015 * (strftime('%s', 'now') - last_visit_time / 1000000 - (strftime('%s', '1601-01-01'))) + 1) + 1)) AS timeK,
|
|
(1 / (-1 * ln(5 * visit_count + 2.71828)) + 1.07) AS visitK,
|
|
(1 / (-1 * ln(7 * typed_count + 2.71828)) + 1.12) AS typeK,
|
|
CASE
|
|
WHEN INSTR(url, '://') > 0 THEN
|
|
CASE
|
|
WHEN INSTR(SUBSTR(url, INSTR(url, '://') + 3), 'www.') = 1 THEN SUBSTR(SUBSTR(url, INSTR(url, '://') + 3), INSTR(SUBSTR(url, INSTR(url, '://') + 3), '.') + 1)
|
|
ELSE SUBSTR(url, INSTR(url, '://') + 3)
|
|
END
|
|
ELSE
|
|
CASE
|
|
WHEN INSTR(url, 'www.') = 1 THEN SUBSTR(url, INSTR(url, '.') + 1)
|
|
ELSE url
|
|
END
|
|
END AS processed_url
|
|
FROM urls
|
|
) AS subquery where relativeK > 0 and hidden <> 1
|
|
) AS subquery
|
|
group by processed_url
|
|
ORDER BY searchRank DESC
|
|
LIMIT 9
|
|
;
|
|
|
|
SELECT processed_url, title,
|
|
timeK * 4.4 + (visitK + typeK) * 6.5 + typeK * 0.22 + relativeK AS searchRank
|
|
FROM (
|
|
SELECT *,
|
|
CASE
|
|
WHEN processed_url LIKE '[query]%' THEN -1
|
|
ELSE
|
|
CASE
|
|
WHEN (title like '% [query]%' or title like '[query]%') THEN 1.6
|
|
ELSE -1
|
|
END
|
|
END AS relativeK
|
|
FROM (
|
|
SELECT *,
|
|
(1 / (5.2 * LOG(38, 0.000015 * (strftime('%s', 'now') - last_visit_time / 1000000 - (strftime('%s', '1601-01-01'))) + 1) + 1)) AS timeK,
|
|
(1 / (-1 * ln(5 * visit_count + 2.71828)) + 1.07) AS visitK,
|
|
(1 / (-1 * ln(7 * typed_count + 2.71828)) + 1.12) AS typeK,
|
|
CASE
|
|
WHEN INSTR(url, '://') > 0 THEN
|
|
CASE
|
|
WHEN INSTR(SUBSTR(url, INSTR(url, '://') + 3), 'www.') = 1 THEN SUBSTR(SUBSTR(url, INSTR(url, '://') + 3), INSTR(SUBSTR(url, INSTR(url, '://') + 3), '.') + 1)
|
|
ELSE SUBSTR(url, INSTR(url, '://') + 3)
|
|
END
|
|
ELSE
|
|
CASE
|
|
WHEN INSTR(url, 'www.') = 1 THEN SUBSTR(url, INSTR(url, '.') + 1)
|
|
ELSE url
|
|
END
|
|
END AS processed_url
|
|
FROM urls
|
|
) AS subquery where hidden <> 1 and relativeK > 0
|
|
) AS subquery
|
|
group by processed_url
|
|
ORDER BY searchRank DESC
|
|
LIMIT 6
|
|
; |