Django 项目总结(10)- 商品搜索

商品搜索

elasticsearch + haystack

elasticsearch 是 一种搜索引擎,搜索引擎会对数据构建索引来进行搜索。

使用 Docker 安装 elasticsearch 及其扩展

拉取镜像

修改配置文件中 ip 地址为本地 ip

创建 docker 容易来运行

使用 haystack 对接 elasticsearch

haystack 为 Django 提供了模块化的搜索。它的特点是统一的,熟悉的 API,可以让你不修改代码的情况下使用不同的搜索后端。

在 Django 中通过使用 haystack 来调用 elasticsearch 搜索引擎

  • 安装 haystack 和 elasticsearch,注册应用,添加配置文件

在配置文件中配置haystack使用的搜索引擎后端

# Haystack
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
        'URL': 'http://192.168.195.140:9200/',  # 此处为elasticsearch运行的服务器ip地址,端口号固定为9200
        'INDEX_NAME': 'meiduo',  # 指定elasticsearch建立的索引库的名称
    },
}

# 当添加、修改、删除数据时,自动生成索引
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

注意:

HAYSTACK_SIGNAL_PROCESSOR 的配置保证了在Django运行起来后,有新的数据产生时,haystack仍然可以让Elasticsearch实时生成新数据的索引

  • 创建索引类,指明让搜索引擎对哪些字段建立索引,也就是可以通过哪些字段的关键字来检索数据。

  • 在 templates 目录中创建 text 字段使用的模板文件,此模板指明当将关键词通过text参数名传递时,可以通过sku的name、caption、id来进行关键字索引查询。

  • 手动生成初始索引

    python manage.py rebuild_index
    
  • 创建 haystack 序列化器, 创建序列化器, 添加路由

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值