diff --git a/app/querybuilder.py b/app/querybuilder.py index baae977..71a3ef2 100644 --- a/app/querybuilder.py +++ b/app/querybuilder.py @@ -2,6 +2,7 @@ from flask import abort, current_app from sqlalchemy import or_ from sqlalchemy.orm import subqueryload from sqlalchemy.sql.expression import func +from sqlalchemy_searchable import search from .models import db, PackageType, Package, ForumTopic, License, MinetestRelease, PackageRelease, User, Tag, \ ContentWarning, PackageState, PackageDevState @@ -171,7 +172,7 @@ class QueryBuilder: def orderPackageQuery(self, query): if self.search: - query = query.search(self.search, sort=self.order_by is None) + query = search(query, self.search, sort=self.order_by is None) if self.random: query = query.order_by(func.random()) diff --git a/migrations/versions/76ff303f76d8_.py b/migrations/versions/76ff303f76d8_.py new file mode 100644 index 0000000..b40e2fe --- /dev/null +++ b/migrations/versions/76ff303f76d8_.py @@ -0,0 +1,29 @@ +"""empty message + +Revision ID: 76ff303f76d8 +Revises: 6e59ad5cc62a +Create Date: 2022-08-18 15:41:28.411877 + +""" + +from alembic import op + +# revision identifiers, used by Alembic. +from sqlalchemy_searchable import sync_trigger + +revision = '76ff303f76d8' +down_revision = '6e59ad5cc62a' +branch_labels = None +depends_on = None + + +def upgrade(): + conn = op.get_bind() + + options = {"weights": {"name": "A", "title": "B", "short_desc": "C", "desc": "D"}} + sync_trigger(conn, 'package', 'search_vector', ["name", "title", "short_desc", "desc"], options=options) + + +def downgrade(): + conn = op.get_bind() + sync_trigger(conn, 'package', 'search_vector', ["name", "title", "short_desc", "desc"])