Flask-Sqlalchemy + Sqlalchemy-searchable regresando lista vacía
Primera vez en el sitio, así que hola a todos y gracias de antemano. Hace mucho tiempo al acecho y newb.
Estoy trabajando en una aplicación web en matraz, usando Flask-SqlAlchemy y SqlAlchemy-Searchable (docs->https://sqlalchemy-searchable.readthedocs.org/en/latest/index.html) Por una razón que no puedo entender, cuando intento unsimilar ejemplo del código que se muestra en la 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'))
Mis consultas de búsqueda no funcionan correctamente. Abrí un shell de Python y creé el db, e inserté cinco artículos idénticos
a= Article(name='finland',content='finland')
db.session.add(a)
db.session.commit() #a-e
con 'finlandia' tanto como nombre como contenido. Según el ejemplo:
Article.query.search(u'finland').limit(5).all()
Debería haber artículos devueltos que tengan Finlandia en algún lugar de ellos. En mi caso, recibo una lista vacía. Me devuelve un objeto si modifico la consulta de ejemplo a:
Article.query.search(' ').first()
Pero es bastante inútil buscar espacios vacíos. ¿Algunas ideas?
Agregando un poco más: noté en la tabla de artículos, la columna 'search_vector tsvector' está completamente vacía a pesar de que los datos están en las columnas de contenido y nombre; No estoy seguro si eso tiene algo que ver con eso.