forked from DebaucheryLibrarian/traxxx
Added relevance to REST release search API, sorting by relevance rank. Improved search result table column naming.
This commit is contained in:
@@ -13,6 +13,7 @@ function curateRelease(release, withMedia = false, withPoster = true) {
|
||||
|
||||
return {
|
||||
id: release.id,
|
||||
...(release.relevance && { relevance: release.relevance }),
|
||||
entryId: release.entry_id,
|
||||
shootId: release.shoot_id,
|
||||
title: release.title,
|
||||
@@ -134,9 +135,13 @@ async function fetchScenes(limit = 100) {
|
||||
|
||||
async function searchScenes(query, limit = 100) {
|
||||
const releases = await knex
|
||||
.from(knex.raw('search_releases(:query) as releases', { query }))
|
||||
.select(knex.raw('search_results.rank as relevance'))
|
||||
.from(knex.raw('search_releases(:query) as search_results', { query }))
|
||||
.leftJoin('releases', 'releases.id', 'search_results.release_id')
|
||||
.modify(withRelations, false, true)
|
||||
.limit(Math.min(limit, 1000000));
|
||||
.limit(Math.min(limit, 1000000))
|
||||
.groupBy('search_results.rank')
|
||||
.orderBy('search_results.rank', 'desc');
|
||||
|
||||
return releases.map(release => curateRelease(release));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user