Flask-Sqlalchemy + Sqlalchemy-searchable retornando lista vazia
Primeira vez no site, então oi a todos e obrigado antecipadamente. Espreitador de longa data e newb.
Estou trabalhando em um aplicativo Web no balão, usando Flask-SqlAlchemy e SqlAlchemy-Searchable (docs->https://sqlalchemy-searchable.readthedocs.org/en/latest/index.html) Por uma razão que não consigo descobrir, quando tentosemelhante exemplo para o código mostrado na página de documentos:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy, BaseQuery
from sqlalchemy_searchable import SearchQueryMixin
from sqlalchemy_utils.types import TSVectorType
from sqlalchemy_searchable import make_searchable
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://usr:admin@localhost/dev'
app.config['SECRET_KEY'] = 'notreallyasecret'
db = SQLAlchemy(app)
make_searchable()
class ArticleQuery(BaseQuery, SearchQueryMixin):
pass
class Article(db.Model):
query_class = ArticleQuery
__tablename__ = 'article'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Unicode(255))
content = db.Column(db.UnicodeText)
search_vector = db.Column(TSVectorType('name', 'content'))
Minhas consultas de pesquisa não funcionam corretamente. Abri um shell python e criei o db e inseri cinco artigos idênticos
a= Article(name='finland',content='finland')
db.session.add(a)
db.session.commit() #a-e
com 'finlândia' como nome e conteúdo. De acordo com o exemplo:
Article.query.search(u'finland').limit(5).all()
Devem ser devolvidos artigos que tenham a Finlândia em algum lugar neles. No meu caso, recebo uma lista vazia. Eu recebo um objeto de volta se eu modificar a consulta de exemplo para:
Article.query.search(' ').first()
Mas é inútil procurar espaços vazios. Alguma ideia?
Adicionando um pouco mais a isso: notei na tabela de artigos que a coluna 'search_vector tsvector' está completamente vazia, apesar dos dados estarem nas colunas de conteúdo e nome; Não tenho certeza se isso tem algo a ver com isso.