Django Haystack 全文检索与关键词高亮

我们已经实现的搜索功能实在过于简单,没有多大的实用性。对于一个搜索引擎来说,至少应该能够根据用户的搜索关键词对搜索结果进行排序以及高亮关键字。

Django Haystack 简介

    django-haystack 是一个专门提供搜索功能的 django 第三方应用,它支持 Solr、Elasticsearch、Whoosh、Xapian 等多种搜索引擎配合著名的中文自然语言处理库 jieba 分词,就可以为我们的博客提供一个效果不错的博客文章搜索系统。

安装必要依赖

     激活虚拟环境执行:
pip install whoosh django-haystack jieba -i https://pypi.douban.com/simple/

配置 Haystack

    首先是把 django haystack 加入到 INSTALLED_APPS 选项里.
然后加入如下配置项:
    HAYSTACK_CONNECTIONS = {
    'default':{
            'ENGINE':'blog.whoosh_cn_backend.WhooshEngine',
            'PATH':os.path.join(BASE_DIR,'whoosh_index'),
        }
    }
    HAYSTACK_SEARCH_RESULTS_PER_PAGE = 10
    HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

参数说明:
    HAYSTACK_CONNECTIONS 的 ENGINE 指定了 django haystack 使用的搜索引擎。
    PATH 指定了索引文件(搜索引擎需要建立索引文件)需要存放的位置。
    HAYSTACK_SEARCH_RESULTS_PER_PAGE 指定如何对搜索结果分页,这里设置为每 10 项结果为一页。
    HAYSTACK_SIGNAL_PROCESSOR 指定什么时候更新索引,这里我们使用 haystack.signals.RealtimeSignalProcessor,作用是每当有文章更新时就更新索引。由于博客文章更新不会太频繁,因此实时更新没有问题。

处理数据

    接下来就要告诉 django haystack 使用哪些数据建立索引以及如何存放索引。
如果要对 blog 应用下的数据进行全文检索,做法是在 blog 应用下建立一个search_indexes.py 文件,写上如下代码:

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值