Первый раз на сайте, так что привет всем и спасибо заранее. Долгосрочный lurker и newb.Flask-Sqlalchemy + Sqlalchemy-searchable возвращающийся пустой список
Я работаю над веб-приложением в колбе, используя Flask-SqlAlchemy и SqlAlchemy-Searchable (docs->https://sqlalchemy-searchable.readthedocs.org/en/latest/index.html). По причине я не могу понять, когда я пытаюсь примером похож на код, указанный на странице Документов
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:[email protected]/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'))
Мои поисковые запросы не работают должным образом. Я открыл питона оболочки и создал децибел, и вставил пять одинаковых статей
a= Article(name='finland',content='finland')
db.session.add(a)
db.session.commit() #a-e
с «финляндии» и как имя и содержание. В соответствии с примером:
Article.query.search(u'finland').limit(5).all()
Должны быть возвращены предметы, в которых есть финляндия. В моем случае я получаю пустой список. Я возвращаю объект обратно, если я изменю запрос к примеру:
Article.query.search(' ').first()
Но это бесполезный поиск пустых пространств. Есть идеи?
Добавление немного больше к нему: в таблице статей я заметил, что столбец «search_vector tsvector» полностью пуст, несмотря на то, что данные находятся в столбцах содержимого и имени; Я не уверен, что это связано с этим.
Ненавижу задать очевидный вопрос ... но вы уверены, что есть "финляндия" в ваших данных? Я считаю, что поиск sqlalchemy чувствителен к регистру ... возможно, ваши данные имеют «Финляндию», но нет «финляндии»? – dylrei
Полностью действующий вопрос. Да, я уверен, что они одинаковы. Я на самом деле собрал больше записей, а имя и контент были «пирогом». Я отредактировал оригинал, чтобы сделать finland во всех нижних регистрах. – Vyndion
Кажется, вам не нужно ничего искать в поисках пробелов. Получаете ли вы записи 5 «финляндий», которые вы ввели, если вы делаете «Article.query.search ('') .all()'? – dylrei