Django实现whoosh搜索引擎使用jieba分词


Posted in Python onApril 08, 2020

本文介绍了Django实现whoosh搜索引擎使用jieba分词,分享给大家,具体如下:

Django版本:3.0.4
python包准备:

pip install django-haystack
pip install jieba

使用jieba分词

1.cd到site-packages内的haystack包,创建并编辑ChineseAnalyzer.py文件

# (注意:pip安装的是django-haystack,但是实际包的文件夹名字为haystack)
cd /usr/local/lib/python3.8/site-packages/haystack/backends/
# 创建并编辑ChineseAnalyzer.py文件
vim ChineseAnalyzer.py

2.修改ChineseAnalyzer.py文件内容

import jieba
from whoosh.analysis import Tokenizer, Token


class ChineseTokenizer(Tokenizer):
  def __call__(self, 
         value,
         positions=False, 
         chars=False,
         keeporiginal=False, 
         removestops=True,
         start_pos=0, 
         start_char=0,
         mode='', 
         **kwargs):
  t = Token(positions, chars, removestops=removestops, mode=mode,**kwargs)
  seglist = jieba.cut(value, cut_all=True)
  for w in seglist:
    t.original = t.text = w
    t.boost = 1.0
    if positions:
      t.pos = start_pos + value.find(w)
    if chars:
      t.startchar = start_char + value.find(w)
      t.endchar = start_char + value.find(w) + len(w)
      yield t


def ChineseAnalyzer():
  return ChineseTokenizer()

3.替换分词器

cp whoosh_backend.py whoosh_cn_backend.py
vim whoosh_cn_backend.py
# 导入ChineseAnalyzer,并将原有的StemmingAnalyser替换为ChineseAnalyzer
from .ChineseAnalyzer import ChineseAnalyzer
# from whoosh.analysis import StemmingAnalyzer

vim替换命令: %s/StemmingAnalyzer/ChineseAnalyzer/g

4.修改setting.py文件

# 全文搜索框架配置
HAYSTACK_CONNECTIONS = {
  'default': {
   # 使用whoosh引擎
   # 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
   # 使用jieba分词
    'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine',
   # 索引文件路径
    'PATH': os.path.join(BASE_DIR, 'whoosh_index'),
  },
}

5.重新建立索引

python manage.py rebuild_index

  可以看到,已经使用了jieba分词。

Django实现whoosh搜索引擎使用jieba分词

到此这篇关于Django实现whoosh搜索引擎使用jieba分词的文章就介绍到这了,更多相关Django jieba分词内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现网页链接提取的方法分享
Feb 25 Python
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
python 删除非空文件夹的实例
Apr 26 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
Python爬取成语接龙类网站
Oct 19 Python
pytorch使用Variable实现线性回归
May 21 Python
Python流程控制 if else实现解析
Sep 02 Python
Python和Anaconda和Pycharm安装教程图文详解
Feb 04 Python
Django重设Admin密码过程解析
Feb 10 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
Python中的 Set 与 dict
Mar 13 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 #Python
python上传时包含boundary时的解决方法
Apr 08 #Python
python MultipartEncoder传输zip文件实例
Apr 07 #Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
Apr 07 #Python
Xadmin+rules实现多选行权限方式(级联效果)
Apr 07 #Python
Django Xadmin多对多字段过滤实例
Apr 07 #Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 #Python
You might like
PHP开发大型项目的一点经验
2006/10/09 PHP
PHP 图像尺寸调整代码
2010/05/26 PHP
PHP禁止页面缓存的代码
2011/10/23 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
2016/07/01 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
Python操作qml对象过程详解
2019/09/26 Python
python实现简单的五子棋游戏
2020/09/01 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
合作协议书
2014/04/23 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
捐款活动总结
2014/08/27 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
毕业证明模板
2015/06/19 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书