全文检索框架和搜索引擎的安装和配置:

  • 安装全文检索框架,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-django项目基础-haystack&whoosh&jieba_20191124的更多相关文章

  1. Python(Django)项目与Apache的管理

    (开开心心每一天~ ---虫瘾师) Python(Django)项目交给Apache的管理(一) 准备:Django的环境(Python).Apache.Wsgi(必须文件) 首先需要电脑有Pytho ...

  2. Python(Django)项目与Apache的管理交互

    (开开心心每一天~ ---虫瘾师) Python(Django)项目交给Apache的管理(一) 准备:Django的环境(Python).Apache.Wsgi(必须文件) 首先需要电脑有Pytho ...

  3. Python Django项目日志查询系统

    该项目适合中小型公司日志查询工作.大型公司可以使用elk等.该系统其实就是调用了absible命令去查日志,然后把输出的信息输到页面查看. 日志查询系统 维护手册 作者:陈土锋 日期:2020年6月1 ...

  4. 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识

    ---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...

  5. 小试VS 2017 开发Python Django项目过程一

    一.新建项目python ->django web 项目 (选择带bootstrap风格与twwriter)项目名称iepiececomputing (ie计件计算)跳出窗体 -> 添加虚 ...

  6. Python Django项目部署 Linux 服务器

    项目依赖: Linux Centos7 (阿里云轻量级服务器) + Python 3.7.2 + Django 2.2.1 + restframework 3.9.4 + mysql 5.7 1 安装 ...

  7. python - django 项目部署 Ubuntu 服务器后接口访问一直 502 问题

    问题描述:最近有了一台 Ubuntu 的服务器,然后准备部署个项目,结果没想到部署的过程跟用 Centos 的时候还有点不一样,最后一步我是卡在了 uwsgi 这里,访问一直502,且可以访问项目的静 ...

  8. python django项目创建及前期准备(使用pycharm)

    一.创建django项目 1.打开pycharm软件 2.点击菜单栏 File-->New Project,弹出如下对话框,如下图设置 二.基本配置 1.静态文件目录配置(用于客户端访问后台服务 ...

  9. Django项目基础配置和基本使用

    博文配置内容包括: django项目的创建 django项目下应用的创建及配置 数据库的配置 templates模板的配置 命令行创建项目: 在需要的目录下创建Django项目输入命令:django- ...

随机推荐

  1. 转载:Apache优化:修改最大并发连接数

    本文转自:https://blog.csdn.net/bjash/article/details/50394894 Apache是一个跨平台的web服务器,由于其简单.稳定安全的特性,被广泛应用于计算 ...

  2. win10使用笔记本自带显卡GUP安装CUDA,版本问题

    1.GPU算力问题 查询:win+r, GPU:GeForce GTX 850m,算力5.0,还可以跑得起来深度项目 2.我们需要查看NVIDIA驱动版本,才能安装合适的CUDA版本. 在C:\Pro ...

  3. javaweb01

    Java web应用由一组servlet.HTML页,类,以及它可以被绑定的资源构成,它可以在各种供应商提供的实现servlet规范容器中运行javaweb包括这些:Servlet jsp 实用类 静 ...

  4. Maven相关:mvn的配置和简单命令

    1.配置mvn: 点击链接 http://maven.apache.org/download.cgi 下载 解压到文件夹: 配置系统环境变量: 测试:mvn -v 2.mvn命令: 1. 显示版本信息 ...

  5. 写一个读取Excel表格的接口

    # -*- coding: gbk -*-import xlrd class Canshu: def __init__(self,filepath): """ 创建文件对 ...

  6. rpc框架解释

    远程过程调用协议RPC(Remote Procedure Call Protocol) RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方 ...

  7. Ubuntu---VIM 常用命令

    今天学习 VIM 的一些常用命令,向传说中的“最后一个编辑器”进攻,哈哈 插入命令: # insert i : 当前光标之前插入 I : 在此行的行首插入 o : 在下一行新起一行插入 O : 在上一 ...

  8. ZJNU 1269 - 灯塔——高级

    根据题目输入可以得到一个有向图 信号可以根据有向图的传递性传递,因此可以说是找到这个有向图的所有父亲即可 但又要考虑可能会出现环这类情况 所以跑一遍强连通分量模板,再根据分块后的图找到入度为0的块,把 ...

  9. Linux进程的引入

    1.什么是进程? (1).进程是一个动态过程而不是静态实物 (2).进程就是程序的一次运行过程,一个静态的可执行程序a.out的一次运行过程(./a.out从运行到结束)就是一个进程. (3).进程控 ...

  10. 协议(Protocol)

    协议(Protocol)的基本概念 协议的声明看起来比较类似于Java中一个类的接口,但是和接口不同的是:协议没有父类也不能定义实例变量. 协议是一种特殊的程序设计结构,用于声明专门被别的类实现的方法 ...