【问题标题】:Django Haystack Faceting examplesDjango Haystack 分面示例
【发布时间】:2012-06-02 13:06:36
【问题描述】:

我想在我正在开发的站点中使用 Django-Haystack-Solr。我已经完成了 Haystack 文档中的示例,并在 Internet 上广泛搜索了其他示例。我很难将它集成到我的网站中。我发现http://www.slideshare.net/Nagyman/faceted-navigation-using-django-haystack-and-solr 很有趣,但不知道如何将它们组合在一起。如果有人遇到过一些“强大的”Haystack faceting 示例、开源网站或愿意分享您自己的一些代码,请提供链接/分享代码。感谢您的帮助。

顺便说一句 - 我想对来自多个模型(表)的多个字段进行分面,并找出一种为分面使用替代标签的方法。

【问题讨论】:

  • 你为什么不提供一些模型和一个你想要刻面的例子?那么也许我们可以从中举出一个例子。
  • 问题是否已解决?

标签: django-haystack faceted-search facet


【解决方案1】:

这是我最近就该主题编写的教程。这使用弹性搜索而不是我个人认为更容易实现的 solr。

Django Haystack + Elasticsearch + Autocomplete + Faceting Tutorial

我实现了以下演示商店站点来演示基于多选的构面。

虽然从图片中看不出来,但本教程还讨论了自动完成的实现。

但即使您想将它与 Solr 一起使用,与分面和自动完成相关的大部分代码仍然保持不变。所以是的,如果您使用 Solr,此代码同样适用。对于 solr,您只需在设置文件中更改 HAYSTACK_CONNECTIONS 的值并通过运行 manage.py build_solr_schema 构建 Solr 索引。将 XML 输出放到 Solr 的 schema.xml 文件中,然后重新启动 Solr 服务器。 Python/Django 代码中没有其他任何变化。

Whoosh 实现了 faceting,但是 Django Haystack 在这方面的发展还没有赶上 Whoosh,所以如果你想实现 faceting,请远离它。

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

【讨论】:

    【解决方案2】:

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

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

    +

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

    )

    您应该在 app1 中定义了方面。

    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 -->
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 2012-08-30
      相关资源
      最近更新 更多