-
-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathsearch.sql
More file actions
37 lines (33 loc) · 1.18 KB
/
search.sql
File metadata and controls
37 lines (33 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
CREATE UNIQUE INDEX index_name ON `keyword`(`name`);
DELIMITER //
CREATE OR REPLACE FUNCTION no_of_words(token VARCHAR(256)) RETURNS REAL READS SQL DATA
BEGIN
DECLARE retVal REAL;
SELECT MAX(`counter`) INTO retVal FROM `occurrence` INNER JOIN `keyword` USING(`keyword_id`) WHERE `name` = token;
RETURN retVal;
END//
DELIMITER ;
DELIMITER //
CREATE OR REPLACE FUNCTION no_of_pages(token VARCHAR(256)) RETURNS REAL READS SQL DATA
BEGIN
DECLARE retVal REAL;
SELECT COUNT(`webpage_id`) INTO retVal FROM `occurrence` INNER JOIN `keyword` USING(`keyword_id`) WHERE `name` = token;
RETURN retVal;
END//
DELIMITER ;
DELIMITER //
CREATE OR REPLACE FUNCTION total_pages() RETURNS REAL READS SQL DATA
BEGIN
DECLARE retVal REAL;
SELECT COUNT(`webpage_id`) INTO retVal FROM `webpage`;
RETURN retVal;
END//
DELIMITER ;
DELIMITER //
CREATE OR REPLACE FUNCTION data_mining(webpage_no BIGINT, token VARCHAR(256)) RETURNS REAL READS SQL DATA
BEGIN
DECLARE retVal REAL;
SELECT SUM(`counter`)/no_of_words(token)*LOG((1+total_pages())/no_of_pages(token)) INTO retVal FROM `occurrence` INNER JOIN `keyword` USING(`keyword_id`) WHERE `name` = token AND `webpage_id` = webpage_no;
RETURN retVal;
END//
DELIMITER ;