1. Haystack介绍和安装配置提示:
- Elasticsearch 的底层是开源库 Lucene。但是没法直接使用 Lucene,必须自己写代码去调用它的接口。
思考:
- 我们如何对接 Elasticsearch服务端?
解决方案:
- Haystack
1.Haystack介绍
$ pip install django-haystack$ pip install elasticsearch==2.4.12.Haystack安装
INSTALLED_APPS = [ 'haystack', # 全文检索]url(r'^search/', include('haystack.urls')),3.Haystack注册应用和路由
# HaystackHAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine', 'URL': 'http://192.168.103.158:9200/', # Elasticsearch服务器ip地址,端口号固定为9200 'INDEX_NAME': 'meiduo_mall', # Elasticsearch建立的索引库的名称 },}# 当添加、修改、删除数据时,自动生成索引HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'4.Haystack配置
- 在配置文件中配置Haystack为搜索引擎后端
2. Haystack建立数据索引重要提示:
- HAYSTACK_SIGNAL_PROCESSOR 配置项保证了在Django运行起来后,有新的数据产生时,Haystack仍然可以让Elasticsearch实时生成新数据的索引
1.创建索引类
2.创建text字段索引值模板文件
$ python manage.py rebuild_index3.手动生成初始索引
1.准备测试表单
2.全文检索测试结果
结论:
- 错误提示告诉我们在templates/search/目录中缺少一个search.html文件
- search.html文件作用就是接收和渲染全文检索的结果。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |