1

Je souhaite pouvoir interroger différents modèles à la fois et obtenir le résultat global de la recherche en texte intégral. c'est-à-dire des livres et des auteurs sous la forme d'une liste unique, triée par pertinence par exemple.Django/Sphinx: Comment faire des requêtes sur plusieurs modèles?

Si je comprends bien, la documentation, il mentionne qu'il est possible, mais il y a une énorme limitation:

 
... 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) ... 

Est-ce que cela signifie que les modèles doivent avoir exactement les mêmes champs ou serait-il suffisant si seulement les champs de l'index sont communs? Ce serait encore une énorme limitation. Et pourquoi les modèles devraient-ils contenir un attribut content_type quand il peut être obtenu à partir de la classe elle-même? Que se passe-t-il si le même nom d'index est donné pour les index de différents modèles? Serait-il possible de faire des recherches sur cet index et d'obtenir des résultats de différents modèles?

également dans la documentation, il dit qu'il est nécessaire de configurer sphynx comme suit pour la recherche sur plusieurs modèles:

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

Est-ce que quelqu'un a une expérience à ce sujet?

Répondre

1

Les modèles doivent être commom juste dans l'index (vous pouvez ajouter de fausses colonnes). Ils doivent contenir le content_type alors quand vous obtenez les résultats, vous connaissez le modèle auquel appartient le résultat.