DistroqueryAPI: getRepositoryPackages: better sort results by query relevance
This commit is contained in:
parent
fd5a9768da
commit
f90a4edb6b
@ -116,9 +116,18 @@ json DistroqueryAPI::getRepositoryPackages(string repository, int per_page, int
|
|||||||
archorder++;
|
archorder++;
|
||||||
}
|
}
|
||||||
|
|
||||||
sql += ") AS u ORDER BY name COLLATE NOCASE ASC,sort"
|
sql += ") AS u";
|
||||||
" LIMIT " + to_string(per_page) +
|
|
||||||
" OFFSET " + to_string(per_page * (page -1));
|
if (query != "") {
|
||||||
|
sql += " ORDER BY name='" + query + "' COLLATE NOCASE DESC, "
|
||||||
|
"name LIKE '" + query + "%' DESC,"
|
||||||
|
"summary LIKE '%" + query + "%' DESC,"
|
||||||
|
" name COLLATE NOCASE ASC,sort";
|
||||||
|
} else {
|
||||||
|
sql += " ORDER BY name COLLATE NOCASE ASC,sort";
|
||||||
|
}
|
||||||
|
sql += " LIMIT " + to_string(per_page) +
|
||||||
|
" OFFSET " + to_string(per_page * (page -1));
|
||||||
|
|
||||||
if (sqlite3_prepare_v2(db, sql.c_str(), sql.length(), &stmt, NULL) == SQLITE_OK) {
|
if (sqlite3_prepare_v2(db, sql.c_str(), sql.length(), &stmt, NULL) == SQLITE_OK) {
|
||||||
json packages = json::array();
|
json packages = json::array();
|
||||||
|
Loading…
Reference in New Issue
Block a user