Как вы фильтруете/присоединяетесь к Haystack SearchQuerySet с помощью соответствующих полей модели?Как фильтровать Haystack SearchQuerySets по родственным моделям
У меня есть запрос, как:
sqs = SearchQuerySet().models(models.Person)
и это возвращает те же результаты, что эквивалентные доходности админ страниц.
Однако, если я пытаюсь и фильтр модели записей, связанных с внешним ключом:
sqs = sqs.filter(workplace__role__name='teacher')
она ничего не возвращает, даже если на странице /admin/myapp/person/?workplace__role__name=teacher
возвращает несколько записей.
Я не хочу делать полнотекстовый поиск этих связанных моделей. Я просто хочу сделать простой фильтр с точным соответствием. Возможно ли это с Haystack?
Ваш конкретный пример не имеет смысла, так как ссылка person-> workplace является отношением друг к другу. – Cerin
Ну, вот как работают эти поисковые системы ... С другой стороны, доступ к этой денормализованной информации является сверхбыстрой, потому что вам не нужно делать никаких дальнейших поисков/соединений для доступа к нему. Если вы избегаете попадания в базу данных при отображении результатов поиска, вы можете получить большое преимущество в производительности ... Также см. Этот http://django-haystack.readthedocs.org/en/latest/best_practices.html#avoid-hitting-the- база данных –
Не знаю, какой именно формат данных ... Вы можете сделать то же самое, что и выше, с отношением от одного до многих, используя «MultiValueField» в стоге сена, который может содержать список (и вы можете фильтровать отдельные значения). См. Этот gist https://gist.github.com/cooncesean/2892533 –