lib/search/word_search: move some score calculation to virtual column
This commit is contained in:
@@ -39,43 +39,10 @@ SearchMode _determineSearchMode(String word) {
|
||||
fts_results AS (
|
||||
SELECT
|
||||
"${tableName}FTS"."entryId",
|
||||
CASE
|
||||
WHEN "${tableName}FTS"."reading" = ? THEN 150
|
||||
ELSE 100
|
||||
END
|
||||
100
|
||||
+ "${tableName}"."baseScore"
|
||||
+ (("${tableName}FTS"."reading" = ?) * 50)
|
||||
- (substr(COALESCE("${TanosJLPTTableNames.jlptTag}"."jlptLevel", 'N0'), 2) * -5)
|
||||
+ CASE
|
||||
WHEN "${tableName}"."news" = 1
|
||||
OR "${tableName}"."ichi" = 1
|
||||
OR "${tableName}"."spec" = 1
|
||||
OR "${tableName}"."gai" = 1
|
||||
THEN 50
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "${tableName}"."news" = 1 THEN 10
|
||||
WHEN "${tableName}"."news" = 2 THEN 5
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "${tableName}"."ichi" = 1 THEN 10
|
||||
WHEN "${tableName}"."ichi" = 2 THEN 5
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "${tableName}"."spec" = 1 THEN 10
|
||||
WHEN "${tableName}"."spec" = 2 THEN 5
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "${tableName}"."gai" = 1 THEN 10
|
||||
WHEN "${tableName}"."gai" = 2 THEN 5
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "${tableName}"."orderNum" = 1 THEN 20
|
||||
ELSE 0
|
||||
END
|
||||
AS "score"
|
||||
FROM "${tableName}FTS"
|
||||
LEFT JOIN "${TanosJLPTTableNames.jlptTag}" USING ("entryId")
|
||||
@@ -91,39 +58,8 @@ SearchMode _determineSearchMode(String word) {
|
||||
SELECT
|
||||
"entryId",
|
||||
50
|
||||
+ "${tableName}"."baseScore"
|
||||
- (substr(COALESCE("${TanosJLPTTableNames.jlptTag}"."jlptLevel", 'N0'), 2) * -5)
|
||||
+ CASE
|
||||
WHEN "${tableName}"."news" = 1
|
||||
OR "${tableName}"."ichi" = 1
|
||||
OR "${tableName}"."spec" = 1
|
||||
OR "${tableName}"."gai" = 1
|
||||
THEN 50
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "${tableName}"."news" = 1 THEN 10
|
||||
WHEN "${tableName}"."news" = 2 THEN 5
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "${tableName}"."ichi" = 1 THEN 10
|
||||
WHEN "${tableName}"."ichi" = 2 THEN 5
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "${tableName}"."spec" = 1 THEN 10
|
||||
WHEN "${tableName}"."spec" = 2 THEN 5
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "${tableName}"."gai" = 1 THEN 10
|
||||
WHEN "${tableName}"."gai" = 2 THEN 5
|
||||
ELSE 0
|
||||
END
|
||||
+ CASE
|
||||
WHEN "orderNum" = 1 THEN 20
|
||||
ELSE 0
|
||||
END
|
||||
AS "score"
|
||||
FROM "${tableName}"
|
||||
LEFT JOIN "${TanosJLPTTableNames.jlptTag}" USING ("entryId")
|
||||
|
||||
Reference in New Issue
Block a user