全文检索django-haystack+jieba+whoosh

全文检索里的组件简介

1、什么是haystack?

  1. haystack是django的开源搜索框架,该框架支持Solr,Elasticsearch,Whoosh, Xapian搜索引擎,不用更改代码,直接切换引擎,减少代码量。
  2. 搜索引擎使用Whoosh,这是一个由纯Python实现的全文搜索引擎,没有二进制文件等,比较小巧,配置比较简单,当然性能自然略低。
  3. 中文分词Jieba,由于Whoosh自带的是英文分词,对中文的分词支持不是太好,故用jieba替换whoosh的分词组件。

2、什么是jieba?

1、很多的搜索引擎对中的支持不友好,jieba作为一个中文分词器就是加强对中文的检索功能

3、Whoosh是什么?

1、Python的全文搜索库,Whoosh是索引文本及搜索文本的类和函数库
2、Whoosh 自带的是英文分词,对中文分词支持不太好,使用 jieba 替换 whoosh 的分词组件。

haystack配置使用(前后端分离)

安装工具

pip install django-haystack==2.8.1

pip install whoosh==2.7.4

pip install jieba==0.42.1

在setting.py中配置

setting.py
 
'''注册app '''
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # haystack要放在应用的上面
    'haystack',
    'jsapp',  # 这个jsapp是自己创建的app
]
 
 
''' 模板路径 '''
TEMPLATES = [
    {
   
        'DIRS': [os.path.join(BASE_DIR,'templates')],
 
    },
]
 
 
'''配置haystack '''
# 全文检索框架配置
HAYSTACK_CONNECTIONS = {
   
    'default': {
   
        # 指定whoosh引擎
        'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
        # 'ENGINE': 'jsapp.whoosh_cn_backend.WhooshEngine',      # whoosh_cn_backend是haystack的whoosh_backend.py改名的文件为了使用jieba分词
        # 索引文件路径
        'PATH': os.path.join(BASE_DIR, 'whoosh_index'),
    }
}
# 添加此项,当数据库改变时,会自动更新索引,非常方便
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
 

定义数据库

## jsapp/models.py##
from django.db import models
 
# Create your 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值