2011-09-08 3 views
0

모든 결과가 색인 된 구성된 SOLR 서버가 있습니다. 모든 결과를 쿼리해도 레코드가 제공됩니다.데이터가 존재하는 동안 haystack 쿼리로 SOLR의 결과가 없음

./manage.py shell 
>>> from haystack.query import SearchQuerySet 
>>> SearchQuerySet().all().count() 
2086 
>>> SearchQuerySet().all()[1000].result_top_level_category 
u'tuinieren' 

그러나 해당 레코드에 대한 쿼리를 시작할 때 결과가 없습니다.

>>> SearchQuerySet().all().filter(result_top_level_category='tuinieren').count() 
0 
>>> SearchQuerySet().all().filter(result_top_level_category=u'tuinieren').count() 
0 

이 문제에 대한 단서 또는 해결책을 제공해 주시겠습니까?


SOLR 스키마는 manage.py build_solr_schema에 의해 생성됩니다. 이것은 result_top_level_category 필드의 관련 라인 :

<field name="result_top_level_category" type="string" indexed="false" 
     stored="true" multiValued="false" /> 

테 문제가 SOLR 스키마가 업데이트 된 후 일어난 것으로 보인다; 다른 필드 이름이 다시 도입되었습니다. 이 필드 이름은 all() 쿼리에서도 반환됩니다.

답변

0

간혹 질문하는 경우가 종종 있습니다.

SOLR 스키마 문서 (http://wiki.apache.org/solr/SchemaXml)를 보면 쿼리 가능하거나 정렬 가능하도록 필드를 인덱싱해야한다는 것이 확실합니다.

result_top_level_category = CharField(indexed=True, faceted=True, 
             model_attr='top_level_category', null=True) 

특정 필드를 쿼리하는 기능이 추가되었습니다.