साइट पर पहली बार, सभी को नमस्कार और अग्रिम धन्यवाद। लंबे समय तक लर्कर और नया।फ्लास्क-स्क्लचेचेमी + स्क्लेल्चेमी-खोजने योग्य खाली सूची
मैं फ्लास्क-एसक्ल एल्केमी और एसक्लएल्चेमी-सर्चबल (डॉक्स->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
पूरी तरह से वैध प्रश्न। हाँ, मुझे यकीन है कि वे वही हैं। मैंने वास्तव में नाम और सामग्री दोनों के साथ "पाई" होने के साथ, अधिक रिकॉर्ड बना दिया था। मैंने सभी निचले मामले में फिनलैंड बनाने के लिए मूल संपादित किया। – Vyndion
ऐसा लगता है कि आपको रिक्त स्थान के लिए कुछ भी वापस नहीं मिलना चाहिए। यदि आप 'Article.query.search ('') .all()' करते हैं तो क्या आप दर्ज किए गए 5 "फिनलैंड" रिकॉर्ड वापस लेते हैं? – dylrei