2012-01-24 4 views
4

나는 그것이 "샘플"백엔드, 백엔드를 교체 잘 작동하지만,
을 장고 - 건초 더미와 검색을 통합하기 위해 노력하고있어 whoosh는 항상 0 개의 결과를 반환합니다.장고 - 건초 더미는 결과를 반환 "휙"

settings.py :

HAYSTACK_DEFAULT_OPERATOR = 'AND' 
HAYSTACK_SITECONF = 'search_sites' 
HAYSTACK_SEARCH_ENGINE = 'whoosh' 
HAYSTACK_SEARCH_RESULTS_PER_PAGE = 20 
HAYSTACK_WHOOSH_PATH = os.path.join(PROJECT_ROOT, 'search_index') 

search_sites.py

import haystack 
haystack.autodiscover() 

정보/search_indexes.py :

from haystack import indexes 
from haystack import site 

from profiles.models import Profile 


class ProfileIndex(indexes.SearchIndex): 
    text = indexes.CharField(document=True, use_template=True) 

    def index_queryset(self): 
     """Used when the entire index for model is updated.""" 
     return Profile.objects.all() 

site.register(Profile, ProfileIndex) 

템플릿/검색/색인/정보/profile_text.txt :

{{ profile.name }} 
{{ profile.description }} 

실행 python manage.py rebuild_index 반환 :

All documents removed. 
Indexing 60 profiles. 

은 쉘에서 다음을 실행 :

>>> from haystack.query import SearchQuerySet 
>>> sqs = SearchQuerySet().all() 
>>> sqs.count() 
0 

은 "간단한"백엔드와 붕 전환, 모든 것이 잘 작동하고 60 개 결과가 반환됩니다.

Getting Started with HaystackDebugging Haystack에 따라 모든 것이 올바르게 설정되어있는 것처럼 보입니다.
아무런 성공도없이 이전 버전의 Whoosh를 설치하려고했습니다.

이 시점에서 매우 어리 석다는 느낌을 받으면 도움이 될 것입니다.

패키지 버전 :

python==2.7 
Django==1.3.1 
Whoosh==2.3.2 
django-haystack==1.2.6 

업데이트 :

  • 1.8.4에 붕 다운 그레이드 도움이되지 않았다.
  • Haystack Tutorial에 설명 된 기본 검색 템플릿을 사용하는 경우 1 문자 쿼리에 대해 모든 결과가 반환되고 다른 검색에 대해서는 0 결과가 반환됩니다.

답변

7

좋아, 그것을 발견하고, 그 다음에 그래도 난 ...

templates/search/indexes/profiles/profile_text.txt가해야 더 바보 :

{{ object.name }} 
{{ object.description }} 

그리고하지 :

{{ profile.name }} 
{{ profile.description }} 

을 혼란 무엇 저에게 데이터베이스와 일치하는 "단순한"백엔드였으며 분명히 데이터 템플릿을 무시했습니다.