歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Django + haystack + solr:配置讓django站點用solr來搜索

Django + haystack + solr:配置讓django站點用solr來搜索

日期:2017/2/28 16:14:42   编辑:Linux教程

環境搭建所需軟件包請參考:CentOS 搭建 solr環境 http://www.linuxidc.com/Linux/2011-05/36394.htm

1、首先當然得創建新的項目:django-admin startproject testsolr

manage.py startapp note

2、修改settings文件,添加haystack相關配置及db配置

haystack相關: HAYSTACK_SITECONF = 'note.search_sites'

HAYSTACK_SEARCH_ENGINE = 'solr'

HAYSTACK_SOLR_URL = 'http://127.0.0.1:8080/solr/'

DATABASES 配置本文省略,請根據自己的情況進行相應配置;

INSTACLLED_APPS 裡面需添加haystack和note

至此,django部分需要配置的就這些。

說明:note app中需要新建編輯search_indexes.py search_sites.py,編輯完成後執行manage.py build_solr_schema,

將輸出的信息保存至schema.xml並覆蓋至solr配置文件所在文件夾下的schema.xml,然後執行manage.py rebuild_index.

3、urls配置,url(r'^search/', include('haystack.urls'))

這個默認會調用haystack的模板,默認在templates下缺少search/search.html,故需要創建:代碼如下

{% block content %}
<h2>Search</h2>

<form method="get" action=".">
<table>
{{ form.as_table }}
<tr>
<td>&nbsp;</td>
<td>
<input type="submit" value="Search">
</td>
</tr>
</table>

{% if query %}
<h3>Results</h3>

{% for result in page.object_list %}
<p>
<a href="{{ result.object.get_absolute_url }}">{{ result.object.title }}</a>
</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 }}&amp;page={{ page.previous_page_number }}">{% endif %}&laquo; Previous{% if page.has_previous %}</a>{% endif %}
|
{% if page.has_next %}<a href="?q={{ query }}&amp;page={{ page.next_page_number }}">{% endif %}Next &raquo;{% if page.has_next %}</a>{% endif %}
</div>
{% endif %}
{% else %}
{# Show some example queries to run, maybe query syntax, something else? #}
{% endif %}
</form>
{% endblock %}

Copyright © Linux教程網 All Rights Reserved