Optimize search

This commit is contained in:
2021-12-28 14:07:25 +03:00
parent 33066414bc
commit a58136c5c2
4 changed files with 13 additions and 9 deletions

View File

@@ -15,8 +15,8 @@ SELECT ARRAY(
) as sml,
(
SELECT count(*) FROM book_authors
LEFT JOIN books ON books.id = book
WHERE author = authors.id AND books.is_deleted = 'f'
LEFT JOIN books ON (books.id = book AND books.is_deleted = 'f')
WHERE author = authors.id
) as books_count
FROM authors
WHERE (
@@ -26,8 +26,8 @@ SELECT ARRAY(
) AND
EXISTS (
SELECT * FROM book_authors
LEFT JOIN books ON books.id = book
WHERE author = authors.id AND books.is_deleted = 'f'
LEFT JOIN books ON (books.id = book AND books.is_deleted = 'f')
WHERE author = authors.id
)
)
SELECT fauthors.id FROM filtered_authors as fauthors

View File

@@ -12,7 +12,7 @@ GET_OBJECT_IDS_QUERY = """
SELECT ARRAY(
WITH filtered_books AS (
SELECT id, similarity(title, :query) as sml FROM books
WHERE books.title % :query
WHERE books.title % :query AND books.is_deleted = 'f'
)
SELECT fbooks.id FROM filtered_books as fbooks
ORDER BY fbooks.sml DESC, fbooks.id

View File

@@ -11,15 +11,15 @@ SELECT ARRAY (
similarity(name, :query) as sml,
(
SELECT count(*) FROM book_sequences
LEFT JOIN books ON books.id = book
WHERE sequence = sequences.id AND books.is_deleted = 'f'
LEFT JOIN books ON (books.id = book AND books.is_deleted = 'f')
WHERE sequence = sequences.id
) as books_count
FROM sequences
WHERE name % :query AND
EXISTS (
SELECT * FROM book_sequences
LEFT JOIN books ON books.id = book
WHERE sequence = sequences.id AND books.is_deleted = 'f'
LEFT JOIN books ON (books.id = book AND books.is_deleted = 'f')
WHERE sequence = sequences.id
)
)
SELECT fsequences.id FROM filtered_sequences as fsequences