1

Я хочу иметь возможность запросить сразу несколько моделей и получить совокупный результат полнотекстового поиска. т.е. книги и авторы как единый список, отсортированные по релевантности, например.Django/Sphinx: как выполнить запрос на нескольких моделях?

Как я понимаю, в документации говорится, что это возможно, но есть огромное ограничение:

 
... The django-sphinx layer also supports some basic querying over multiple 
indexes ... Your indexes must contain exactly the same fields. These fields 
must also include a content_type selection which should be the content_type 
id associated with that table (model) ... 

Означает ли это, что модели должны иметь одни и те же поля, или было бы достаточно, если только поля в индексе являются общими? Это все равно будет огромным ограничением. И почему модели должны содержать атрибут content_type, когда он может быть получен из самого класса?

Что делать, если для индексов разных моделей указано одно и то же имя индекса? Можно ли искать этот индекс и получать результаты от разных моделей?

Кроме того, в документации говорится, что необходимо настроить сфинкс следующим образом для поиска на нескольких моделях:

model_classes = (ModelOne, ModelTwoWhichResemblesModelOne) 
output = generate_config_for_models(model_classes) 

Кто-нибудь есть опыт по этому вопросу?

ответ

1

Модели должны быть commom только в индексе (вы можете добавить поддельные колоды). Они должны содержать content_type, поэтому, когда вы получаете результаты, вы знаете модель, к которой принадлежит результат.