Je souhaite utiliser Sphinx pour de nombreuses applications. J'ai pris le cas des questions et des tags ici dans StackOverflow pour l'illustration.Recherche many-to-many avec Sphinx
Une question peut être associée à de nombreuses étiquettes et vice versa pour une étiquette.
Donc dans le mysql, j'ai 3 tables: question, tag, question_tag.
Je voudrais rechercher des questions qui contiennent autant de balises dans les ensembles "java", "sphinx", "mysql", "hibernate" que possible. Ainsi, le résultat pourrait provenir de questions avec 3 matchs, 2 matchs ou 1 match.
Actuellement, je crée un champ qui enchaîne toutes ces variables avec de l'espace et qui a un champ sphinx. Mais cela semble stupide et crée beaucoup de frais généraux lors de l'ajout et la suppression de balises. Il y aura une façon plus intelligente, non?
Puisque c'est un cas many2many, vous allez créer de nombreux enregistrements pour les mêmes questions. Un autre problème plus sérieux est que si la question rencontre plus de 1 mot-clé de votre phase de recherche, la note est encore faible. –