2012-06-02 3 views
2

제가 작업하고있는 사이트에서 Django-Haystack-Solr을 사용하고 싶습니다. Haystack 설명서의 예제를 통해 작업했으며 인터넷을 통해 다른 예제를 광범위하게 검색했습니다. 내 사이트에 통합하는 데 어려움을 겪고 있습니다. 나는 http://www.slideshare.net/Nagyman/faceted-navigation-using-django-haystack-and-solr이 흥미 롭다는 것을 알았지 만, 함께 모으는 방법에 대해서는 부족했다. 누군가 "건방진"Haystack 패싱 예제를 실행 한 경우 오픈 소스 웹 사이트 나 자신의 코드 중 일부를 공유하고자하는 웹 사이트는 링크/공유 코드를 제공하십시오. 도와 주셔서 감사합니다.Django Haystack Faceting examples

btw - 여러 모델 (테이블)의 여러 필드에서 패싯을 만들고 패싯에 대체 레이블을 사용하는 방법을 찾아냅니다.

+0

왜 일부 모델을 제시하지 않으려 고하고 싶은 점이 무엇입니까? 그러면 어쩌면 우리는 그것의 예를 연구 할 수 있습니다. –

+0

문제가 해결 되었습니까? –

답변

0

어쨌든 오래된 질문이지만 대답을하려고합니다. :) 은 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 --> 
1

다음은이 주제에 대한 최근 튜토리얼입니다. 이것은 개인적으로 구현하기가 더 쉽다고 믿는 solr 대신 Elastic search를 사용합니다.

Django Haystack + Elasticsearch + Autocomplete + Faceting Tutorial

나는 여러 선택에 따라 시팅을 입증하기 위해 다음과 같은 데모 상점 사이트를 구현했습니다.

이 자습서에서는 이미지에서 분명하지 않지만 자동 완성 구현에 대해서도 설명합니다.

enter image description here

는하지만 SOLR 이것을 사용하려는 경우에도 패 시팅 (faceting) 및 자동 완성에 관련된 대부분의 코드는 동일하게 유지됩니다. Solr. solr을 사용하는 경우,이 코드는 설정 파일에서 HAYSTACK_CONNECTIONS의 값을 변경하고 manage.py build_solr_schema을 실행하여 Solr 인덱스를 작성하기 만하면됩니다. Solr의 schema.xml 파일에서 XML 출력을 삭제하고 Solr 서버를 다시 시작하십시오. 파이썬/장고 코드에서 변경된 사항은 없습니다.

Whoosh는 Faceting을 구현하지만 Django Haystack은 아직이 개발에서 Whoosh를 따라 잡고 있지 않으므로 Faceting을 구현하려면 장황한 상태를 유지하십시오.

코드가 너무 커서 여기서는 공유 할 수 없지만 코드에 바로 들어가기를 원하는 사람은 complete source code입니다.