我在项目中的使用:
app/__init__.py中
...
import flask_whooshalchemyplus
...
def create_app(config_name='default'):
app = Flask(__name__)
app.config.from_object(config[config_name])
....
flask_whooshalchemyplus.init_app(app)
...
return app
app/models.py中
from jieba.analyse.analyzer import ChineseAnalyzer
...
class Goods(db.Model):
__tablename__ = 'goods'
__searchable__ = ['product_id','name','storage_location']
__analyzer__ = ChineseAnalyzer()
product_id = db.Column(db.Integer,index=True,primary_key=True)
name = db.Column(db.String)
price = db.Column(db.Float)
weight = db.Column(db.Float)
norms = db.Column(db.String)
residue_num = db.Column(db.Integer)
sale_total = db.Column(db.Integer)
storage_time = db.Column(db.DateTime,default=datetime.utcnow)
storage_location = db.Column(db.String)
弄完这些后,删除数据库文件,重建数据库。
PS:重建数据库后,我是用了SQLite图形工具向数据库中插入些数据的。
实验查询
python manage.py shell
>>> from app.models import Goods
>>> abc = Goods.query.all()
>>> for i in abc:
... print i.product_id,i.name
...
123 胜多负少发
###问题出现了,查询是有关于123的条目,但是搜索却没有。
>>> Goods.query.whoosh_search('123').all()
[]
这是咋问题的?
==================
搞定了,flask_whooshalchemyplus模块的作者今天修复了一个BUG,现在正常用了。