python-django项目基础-haystack&whoosh&jieba_20191124
2023-09-14 08:59:04 时间
全文检索框架和搜索引擎的安装和配置:
- 安装全文检索框架,pip install django-haystack,
- 安装搜索引擎,pip install whoosh
- settings里面配置
- 1,注册haystack
- INSTALLED_APPS=[
- # 注册全文搜索框架
- 'haystack',
- ]
- 2,配置,
-
# 全文检索框架的配置 HAYSTACK_CONNECTIONS = { 'default': { # 使用whoosh引擎 # 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine', # 索引文件路径 'PATH': os.path.join(BASE_DIR, 'whoosh_index'), } } # 当添加、修改、删除数据时,自动生成索引 HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
这是一个路径:
- 我找到Linux下面的路径:
- /home/andy/.virtualenvs/lq_py3/lib/python3.5/site-packages/haystack/backends
- 然后把我Windows下面的文件移动到这个地方,
- 这里面有jieba分词的代码,
生成索引文件:
- 搜索的是商品表的数据,
- 你要有索引文件的生成,最终是需要goossku这个类,新建一个这个类的一个索引类,
- 在templates下面建立文件夹search,下面建立indexes,这两个文件名都是固定的,
- 下面再建立goods文件夹,建立索引文件,
- 现在就可以生成索引数据了,
- >python manage.py rebuild_index
全文检索的应用:
- 两个地方,
- 1,是页面上搜索的地方要有一个提交搜索的目标路径,
- 2,是后台路由需要配置这个路径,这个是交给haystack来处理的,
- 还需要一个搜索结果页的html页面,
更改分词的方式:
- 比如,很不错的草莓,
- 但是你搜索不错,这是查不到的,
- 所以默认whoosh里面的引擎,在分解词语的时候分词不好,有些词分的不好,
- 我们要使用一个中文分词的包,就是jieba分词,这是中文默认的分词,比默认的要好,
- 这个分词怎么用:
- 第一步:安装
- 安装,pip install jieba,
- 有什么用?下面就是演示:
- import jieba,
- srt=‘很不错的草莓’
- res=jieba.cut(str,cut_all=True)
- for val in res:
- print(val)
-
很
不错
的
草莓 - 这就是分词的结果,很不错,
- 那么怎么用呢?
- 第二步:在haystack目录新建一个文件,
- 还是进入Linux中,haystack的目录下:
- /home/andy/.virtualenvs/lq_py3/lib/python3.5/site-packages/haystack/backends
- 然后把Windows下面的文件ChineseAnalyzer.py复制一份到这个地方,
- 然后就可以了,
- 1,安装
- 2,新建一个文件,
- 3,修改文件,
- 4,修改配置,
- 5,重新建立索引,这次就是使用jieba分词了
相关文章
- [Python]架设python虚拟环境以及部署PythonWeb服务
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
- 线程池原理及python实现
- 利用python求解物理学中的双弹簧质能系统详解
- Python的Django框架中的URL配置与松耦合
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- python分段算利润、税收
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- Python Django后台管理模板美化:使用django-simpleui模块
- Python Django Q查询和F查询API
- Python Django 获取多条记录API
- 华为OD机试 - 字符串重新排列、字符串重新排序(Java & JS & Python)
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- Python之多线程:python多线程设计之同时执行多个函数命令详细攻略
- Python语言编程学习:利用python输出当前python版本、MSC版本型号
- Python语言学习之字符串那些事:python和字符串的使用方法之详细攻略
- 已解决2.Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and wi
- 已解决(Python安装报错)Visit python.org to download an earlier version of Python.
- 以就业为目标,Python到底应该学什么?
- 〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建
- 从零开始学python | 什么是Python JSON?
- 3种方案 | 抛弃for循环,让Python代码更丝滑
- Python编程:twine模块打包python项目上传pypi
- Python编程:Django中的Request对象常用属性
- Python编程:python-attrs模块的简单使用
- Python:设计模式之门面模式
- Python生成器是什么
- Python学习笔记24:Django搭建简单的博客站点(二)
- Python中单线程、多线程和多进程的效率对比实验
- 【异常】前端ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.