首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django实战-番外篇-haystack全文检索

haystack 是 django 的开源搜索框架,该框架支持 Solr、Elasticsearch、Whoosh、Xapian 搜索引擎,不用更改代码,直接切换引擎。

搜索引擎使用 Whoosh,这是一个由纯 python 实现的全文搜索引擎,没有二进制文件等,比较小巧,配置比较简单。

配置 haystack

在主项目路径下的 settings.py 文件的INSTALLED_APPS中添加

haystack 配置信息

同样,在 settings.py 文件中配置。

需要设置 PATH 到 项目的 Whoosh 所有的文件系统的位置。

使用python manage.py rebuild_index或者使用update_index命令。在 settings.py 里加入以下配置,实现自动刷新索引。

建立索引

在需要搜索功能的 App 应用下建立search_indexes.py文件,用于创建索引。

以本次电商项目为例,在商品应用下建立了 search_indexes.py 文件。

每个索引里面必须有且只有一个字段为document=True,这代表 haystack 和搜索引擎将使用此字段的内容作为索引进行检索。其它字段只是附属的属性,方便调用,并不做为检索数据。

商品的模型层如图所示:

注意:如果使用一个字段设置了 document=True,则一般约定此字段名为 text,这是在 SearchIndex 类里面一贯的命名,以防止后台混乱。

数据模板

haystack 提供了use_template=True在text字段,这样就允许使用数据模板去建立搜索引擎索引的文件。

文件名必须为要索引的类名_text.txt

字段建立索引,当检索的时候会对字段做全文检索匹配

配置 URL

搜索模板

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190619A001V200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券