Django Haystack面对的例子

时间:2012-06-02 13:06:36

标签: django-haystack faceted-search facet

我想在我正在制作的网站上使用Django-Haystack-Solr。我已经完成了Haystack文档中的示例,并在其他示例中广泛搜索了互联网。我很难实现将其集成到我的网站中。我发现http://www.slideshare.net/Nagyman/faceted-navigation-using-django-haystack-and-solr很有趣,但没有达到如何将它们全部拉到一起。如果有人遇到过一些“健壮”的干草堆面对面的例子,开源的网站,或者愿意分享你自己的一些代码请提供链接/共享代码。谢谢你的帮助。

btw - 我想在多个模型(表格)的多个字段上进行分析,并想出一种方法来为构面使用替代标签。

2 个答案:

答案 0 :(得分:1)

这是我最近关于该主题的教程。这使用Elastic搜索而不是solr,我个人认为它更容易实现。

Django Haystack + Elasticsearch + Autocomplete + Faceting Tutorial

我实施了以下演示商店网站,以展示基于多重选择的分面。

虽然图像中不明显,但本教程还讨论了自动完成实现。

enter image description here

但即使你想在Solr中使用它,大多数与分面和自动完成相关的代码仍然是相同的。所以,如果你使用Solr,这个代码同样适用。对于solr,你只需要在你的设置文件中更改HAYSTACK_CONNECTIONS的值,并通过运行manage.py build_solr_schema来构建Solr索引。删除Solr的schema.xml文件中的XML输出并重新启动Solr服务器。 Python / Django代码中没有其他任何变化。

飞快移动实现了分面,但是Django Haystack还没有在这个开发上赶上Whoosh,所以如果你想实现分面,请保持清醒。

代码太大,无法在此处分享,但对于想要深入了解代码的人来说,这里是complete source code

答案 1 :(得分:0)

虽然老问题但无论如何试图给出答案。 :) 把它放在你的url.conf中

sqs = SearchQuerySet().facet('auther') 

+

urlpatterns += patterns('haystack.views',
url(r'^$', FacetedSearchView(form_class=FacetedSearchForm, searchqueryset=sqs), name='haystack_search'),

你应该在app1中定义facet。

title = indexes.CharField(model_attr='title',faceted=True,null=True)  

模板应该类似于以下内容。

         <!-- Begin faceting. -->
<div>
    <dl>


        {% if facets.fields.wish_text %}
           {% for author in facets.fields.title  %}
                <dd><a href="{{ request.get_full_path }}&amp;selected_facets=author_exact:{{ author.0|urlencode }}">{{ author.0 }}</a> ({{ author.1 }})</dd>
            {% endfor %}
        {% else %}
            <p>No author facets.</p>
        {% endif %}
    </dl>

</div>
<!-- End faceting -->