您好,匿名用户

Flask-whooshsqlalchemyplus中文分词搜索问题

0 投票

我的配置
工厂函数中
def create_app(...):

...
import flask_whooshalchemyplus
flask_whooshalchemyplus.init_app(app)
from app.models import Post
whoosh_index(app,Post)
body=db.Column(db.Text)

我的模型:
class Post(db.Model):

__searchable__=['body']
__analyzer__ = ChineseAnalyzer() 
__tablename__='posts'

我的视图函数:
@ser.route('/search',methods=['POST'])
@login_required
def search():

page=request.args.get("page",1,type=int)
form=g.search_form
if not form.validate_on_submit():
    flash("Empty result.")
    return redirect(url_for('main.index'))
post=Post.query.whoosh_search(form.search.data)
pagination=post.paginate(page,per_page=int(current_app.config['FLASKY_POSTS_PER_PAGE']),error_out=False)
posts=pagination.items
return render_template('/ser/result.html',posts=posts,username=current_user.username,pagination=pagination)

把配置whooshalchemyplus前的POST都删除了,新建的POST英文可以正常搜索,中文只能支持全匹配搜索。
db.session.add(Post(body=u'天气一般般'))
db.session.commit()
a=Post.query.whoosh_search(u'天气').fisrt()
a
[]
a=Post.query.whoosh_search(u'天气一般般').fisrt()
<app.modls........>
该怎么办,新手求助

重置了数据库也无效,数据库用的SQLite

用户头像 提问 2017年 6月18日 @ Darius 中士 (1,146 威望)
分享到:

1个回答

0 投票

你可以参考一下这个: https://www.v2ex.com/t/274600...

我之前用的flask-whooshalchemy,中文分词效果也不好, 然后我用结巴jieba做了分词表和索引,然后whooshalchemy搜分词表. 效果还行.

用户头像 回复 2017年 6月18日 @ Trundle 中士 (1,132 威望)
提一个问题:

相关问题

0 投票
1 回复 382 阅读
用户头像 提问 2014年 6月8日 @ Cho'Gath 中士 (1,042 威望)
0 投票
1 回复 43 阅读
用户头像 提问 2017年 3月10日 @ Taurus 下士 (983 威望)
0 投票
1 回复 90 阅读
0 投票
1 回复 113 阅读
用户头像 提问 2016年 1月9日 @ Sivir 中士 (1,100 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...