A flask extension that adds full text search capabilites to your SQLAlchemy models using the Whoosh search engine
Project description
Flask-SQLAlchemy-Whoosh
A simple and easy to use Flask extension to add full text search to your SQLAlchemy models using the Whoosh search engine.
Installing
$ pip install Flask-SQLAlchemy-Whoosh
Setup
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from Flask_SQLalchemy_Whoosh.searcher import WhooshSearcher
from Flask_SQLalchemy_Whoosh.mixin import SearchableMixin
app = Flask(__name__)
db = SQLAlchemy(app)
search = WhooshSearcher(app)
# If you want to use the SearchableMixin
SearchableMixin.init_search(search, db)
Documentation
You can find some documentation here
Example
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from Flask_SQLalchemy_Whoosh.searcher import WhooshSearcher
from Flask_SQLalchemy_Whoosh.mixin import SearchableMixin
from whoosh.fields import ID, TEXT, NUMERIC
app = Flask(__name__)
db = SQLAlchemy(app)
search = WhooshSearcher(app)
SearchableMixin.init_search(search, db)
class Product(SearchableMixin, db.Model):
__tablename__ = "product"
# __searchable__ is needed to tell the searcher what to index
# For documentation on the specifics of each field, refer to the Whoosh documentation
# https://whoosh.readthedocs.io/en/latest/schema.html
__searchable__ = {
"id": ID(stored=True, unique=True),
"name": TEXT(stored=True),
"desc": TEXT,
"price": NUMERIC
}
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String),
desc = db.Column(db.String),
price = db.Column(db.Integer)
# If you want to index a table that already has entries, use the reindex method
# It will index all entries in the table
Product.reindex()
# Use the search method to search a table
results, total = Product.search("name", "nails")
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for flask_sqlalchemy_whoosh-0.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05104ada2104285427ed561aa1281d86dcfeead2d0d6a472d90fd097c468cd37 |
|
MD5 | 9c2d3b9ffb54749c71b2a836aaf7e0a1 |
|
BLAKE2b-256 | 1ee3d0970815c8e2ba81e8ef8c7cb72216d9c937264431be4f92e6f061b8c4ed |
Close
Hashes for flask_sqlalchemy_whoosh-0.1.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc9aaa8494cad87d25babac07f4a54921eae65e3a0e50d37111afb072331a5cc |
|
MD5 | b65e8f8521074c3ead8469dcc8355f3f |
|
BLAKE2b-256 | 5f3b6d5363605e90e2a7419a0c59aa29d51de50fae6e22b0d7f98394c25f09b9 |