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基本数据类型详细介绍
Mar 11 Python
Python getopt模块处理命令行选项实例
May 13 Python
10款最好的Web开发的 Python 框架
Mar 18 Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
Python装饰器基础详解
Mar 09 Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 Python
Django之无名分组和有名分组的实现
Apr 16 Python
python启动应用程序和终止应用程序的方法
Jun 28 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
学python最电脑配置有要求么
Jul 05 Python
python爬虫请求头设置代码
Jul 28 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函数
2010/02/16 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
js变量提升深入理解
2016/09/16 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python编程中的反模式实例分析
2014/12/08 Python
python检测某个变量是否有定义的方法
2015/05/20 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
挂职思想汇报
2013/12/31 职场文书
银行实习生的自我评价
2014/01/13 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
工作建议书范文
2014/05/13 职场文书
工作目标责任书
2014/07/23 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书