मैं मदद की जरूरत है, को लागू करने के लिए एक खोजशब्द खोज में फ्लास्क के साथ फ्लास्क-msearch

0

सवाल

मैं का उपयोग कर रहा हूँ संस्करण 3.9 के अजगर और प्रयास बनाने के लिए एक खोजशब्द खोज, जहां एक उपयोगकर्ता दर्ज कर सकते हैं खोजशब्दों के एक स्ट्रिंग और स्ट्रिंग पूछे जा सकते हैं डेटाबेस के खिलाफ युक्त तार. वहाँ रहे हैं कोई त्रुटियाँ नहीं में और सब कुछ चलाता है, लेकिन क्वेरी के परिणाम नहीं है कि मैं क्या उम्मीद है. लौटने के बजाय सभी पंक्तियों के होते हैं कि इसी तरह के शब्दों के लिए कीवर्ड से विवरण स्तंभ यह रिटर्न में क्वेरी स्ट्रिंग के रूप में.

यह मेरी init.py फ़ाइल:

import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_msearch import Search
...
app = Flask(__name__)
searched = Search(app)
searched.init_app(app)
searched.create_index(update=True)
MSEARCH_INDEX_NAME =  os.path.join(app.root_path,'msearch')
MSEARCH_ENABLE = True
from .search import search as search_blueprint
app.register_blueprint(search_blueprint)

return app

यह मेरी models.py फ़ाइल

class Service (db.Model):
    __searchable__  = ['description']
    provider_id     = db.Column(db.Integer, db.ForeignKey('provider.provider_id'), nullable=False)
    service_id      = db.Column(db.Integer, nullable=False, primary_key=True)
    rating_avg      = db.Column(db.Float(precision=2), nullable=False)
    service_name    = db.Column(db.String(20), nullable=False)
    cost            = db.Column(db.Float(precision=2), nullable=False)
    description     = db.Column(db.String(255), nullable=False)
    category        = db.Column(db.String(20), nullable=False)
    
    def __repr__(self):
        return 'String representation of Service'

यह मेरी search.py फ़ाइल:


search = Blueprint('search', __name__)

@search.route('/search')
def searching():
    return render_template('search.html')

@search.route('/search', methods=['POST'])
def searching_post():
    searchInput = request.form.get('searchInput')
    results = Service.query.msearch(searchInput, fields= ['description'])
    return render_template('result.html', results=results)

यह मेरी search.html टेम्पलेट फ़ाइल:

{% extends "base.html" %}

{% block content %}
<div class="column is-8 is-offset-2">
    <h1 class ="title">
    Enter keywords and minimum rating
    </h1>
    <div class="box">
        <form method="POST" action="/search">
        <div class="field">
                    <div class="form-group">
                    <input class="input is-large" type="text" name="searchInput" placeholder=" " autofocus="">
                    </div>
                </div>
        <button class="button is-block is-info is-large is-fullwidth">Search</button>
         </form>
    </div>
</div>
{% endblock %}

यह परिणाम है मैं जब मैं कुछ भी खोज में searchbar:

Results: SELECT service.provider_id AS service_provider_id, service.service_id AS service_service_id, service.rating_avg AS service_rating_avg, service.service_name AS service_service_name, service.cost AS service_cost, service.description AS service_description, service.category AS service_category FROM service WHERE (service.description LIKE '%' || ? || '%')!
elasticsearch flask python whoosh
2021-11-21 22:29:36
1

सबसे अच्छा जवाब

1

msearch रिटर्न एक Query वस्तु और जब आप प्रिंट अपने results चर आप अपने स्ट्रिंग प्रतिनिधित्व - अंतर्निहित SQL क्वेरी है ।

प्राप्त करने के लिए वास्तविक परिणाम आप की जरूरत करने के लिए 'अमल' क्वेरी, उदा.

results = Service.query.msearch(searchInput, fields= ['description']).all()

निम्न विधि कॉल भी कारण के निष्पादन अंतर्निहित क्वेरी:

results = Service.query.msearch(searchInput, fields= ['description']).first()
results = Service.query.msearch(searchInput, fields= ['description']).one()
results = Service.query.msearch(searchInput, fields= ['description']).one_or_none()
2021-11-22 10:02:07

मैं वास्तव में समझ से बाहर गलती की है, यह संबंधित है, लेकिन मैं था बस गायब .सभी() का अंत करने के लिए परिणाम = सेवा । क्वेरी.msearch(searchInput, फील्ड्स= ['विवरण']).सभी()
Ali Khabib

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में