2012-01-24 16 views
4

django-haystackと検索を統合しようとしています
"サンプル"バックエンドでうまく動作しますが、それは常に0の結果を返します。Django-haystackは "単純な"バックエンドを返しますが、 "whoosh"を返しません

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:

シェルで次のコマンドを実行したとき

All documents removed. 
Indexing 60 profiles. 

:0

python manage.py rebuild_indexリターンを実行する "単純な" バックエンドとのヒューという音を切り替えるとき

>>> 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結果が返されます。 [OK]を

答えて

7

、それを発見し、それはその後、私も...

templates/search/indexes/profiles/profile_text.txtがあるべきもっと愚かだった:

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

そしてません:

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

混乱して何私はデータベースと一致する「シンプルな」バックエンドであり、明らかにデータテンプレートを無視していました。

関連する問題