당신은 객체의 PK와를 사용하여 건초 더미 검색의 결과에 따라 검색어 세트를 필터링 할 수 있습니다 :
def view(request):
if request.GET.get('q'):
from haystack import ModelSearchForm
form = ModelSearchForm(request.GET, searchqueryset=None, load_all=True)
searchqueryset = form.search()
results = [ r.pk for r in searchqueryset ]
docs = Document.objects.filter(pk__in=results)
# do something with your plain old regular queryset
return render_to_response('results.html', {'documents': docs});
하지 않음이 확장 방법을 잘하지만, 작은 결과 집합에 대한 (몇 백, 내 경우) ,이 잘 작동합니다.
예를 템플릿에 :
{% for result in results %}
{{ result.object.title }}
{{ result.objects.author }}
{% endfor %}
하지만이 때문에 정말 나쁜 당신이 적절와 유지하려면
이렇게하면 결과가 ID별로 정렬되어 해당 사항을 잃게됩니다. – dzen
@ dzen 관련성 순위를 유지하면서이 작업을 수행하는 가장 좋은 방법은 무엇입니까? –
이것은 축척되지 않습니다. 쿼리가 너무 길어질 것이라고 가정합니다. 몇 천 개의 ID가 있으면 0 개의 결과가 나타납니다. –