django-haystack+solr实现搜索
来源:互联网 发布:php 转换成日期格式 编辑:程序博客网 时间:2024/05/16 02:40
1.首先下载solr。http://mirror.bjtu.edu.cn/apache/lucene/solr/3.6.1/apache-solr-3.6.1.zip下载解压即可
cd example/
java -jar start.jar
即可启动solr了,可以进入http://localhost:8983/solr/admin/看看效果。
ps. 这里有个地方要注意的,将solr/conf/stopwords.txt改名为stopwords_en.txt,不然会出错的
2.安装pysolr。sudo pip install pysolr
haystack就不介绍了,看上篇就知道了。
3.修改settings.py
<!-- lang: python -->HAYSTACK_CONNECTIONS = {'default': { 'ENGINE': 'haystack.backends.solr_backend.SolrEngine', 'URL': 'http://127.0.0.1:8983/solr'},
}
4.新建models如下:
<!-- lang: python -->class Blog(models.Model): title = models.CharField(max_length=30) content = models.CharField(max_length=140) created_time = models.DateTimeField(auto_now=True) def __unicode__(self): return self.title
5.在blog目录下新建search_indexes.py:
<!-- lang: python -->import datetimefrom haystack import indexesfrom blog.models import Blogclass BlogIndex(indexes.SearchIndex, indexes.Indexable): text = indexes.CharField(document=True, use_template=True) title = indexes.CharField(model_attr='title') content = indexes.CharField(model_attr='content') def get_model(self): return Blog def index_queryset(self): return self.get_model().objects.all()
6.新建templates/search/indexes/blog/blog_text.txt:
<!-- lang: html -->{{ object.title }}{{ object.content }}
7.在urls.py中加入(r’^$’, include(‘haystack.urls’)),
8.新建templates/search/search.html:
<!-- lang: html --><h2>Search</h2><form method="get" action="."> <table> {{ form.as_table }} <tr> <td> </td> <td> <input type="submit" value="Search"> </td> </tr> </table> {% if query %} <h3>Results</h3> {% for result in page.object_list %} <p> Title: {{ result.object.title }} </p> <p> Content: {{ result.object.content }} </p> {% empty %} <p>No results found.</p> {% endfor %} {% if page.has_previous or page.has_next %} <div> {% if page.has_previous %}<a href="?q={{ query }}&page={{ page.previous_page_number }}">{% endif %}« Previous{% if page.has_previous %}</a>{% endif %} | {% if page.has_next %}<a href="?q={{ query }}&page={{ page.next_page_number }}">{% endif %}Next »{% if page.has_next %}</a>{% endif %} </div> {% endif %} {% else %} {# Show some example queries to run, maybe query syntax, something else? #} {% endif %}</form>
9.将schema.xml导入:python manage.py build_solr_schema > /path_to_solr/example/solr/conf/
10.重建索引:python manage.py rebuild_index
大致流程就这样的。
0 0
- django-haystack+solr实现搜索
- django+haystack+solr 实现网站全文检索
- Getting Started with Solr 4.9 and Django haystack
- django-haystack & solr 使用过程中的错误记录。。。
- 使用Django haystack集成solr编写搜索引擎(一)
- django haystack update_index 实现自动化 同步
- 实现Django的全文检索:Haystack
- django全文搜索学习心得(一)haystack 篇
- 使用Solr快速实现Django的全文搜索[转]
- 使用haystack实现django全文检索搜索引擎功能
- Solr实现全文搜索
- 实现Django的全文检索功能(三):进一步学习Haystack
- 实现Django的全文检索功能(三):进一步学习Haystack
- Django-haystack框架结合中文jieba分词和英文whoosh引擎实现全文检索功能
- 2Solr实现全文搜索
- Solr实现京东搜索
- Solr实现全文搜索 linux
- Django 1.5.4 专题21 haystack whoosh
- cmakelists对于c项目和c++项目的写法
- HTTP2折腾记
- c#操作数据库入门
- spring4和mybaties3整合(一)
- kettle条件判断
- django-haystack+solr实现搜索
- java 中的内部类
- 重定向之301.htaccess
- 对于vue中的v-bind:class 中的一点总结
- 在ubuntu下搭建hadoop环境(单机配置)
- PRD概述
- 全球第一款NB-IoT透传模块
- 发布你的Python包
- c# 基础类型