Je suis en train de mettre en place un indice Sphinx avec un grand nombre à plusieurs relation de base entre les œuvres et les genres:index sphynx avec de nombreux à-plusieurs
artworks
---------------
id
title
description
genres
---------------
id
name
artwork_genres
---------------
artworks_id
genres_id
Dans mon fichier de configuration sphynx J'ai quelque chose comme
source src_artwork {
...
sql_query = SELECT id, title, description FROM artworks
sql_attr_multi = uint tag from query; SELECT id,name FROM genres
}
C'est de la documentation, pour autant que je peux comprendre, sur multi-valued attributes et sql_attr_multi
Mais, évidemment, il n'y a aucune mention de la table de cravate là-dedans et je ne peut pas comprendre comment cela est introduit dans la config. Je voudrais simplement pour une recherche sur "Impressionnisme" pour aboutir à des œuvres appartenant à ce genre (pondéré comme approprié si le terme est vu dans les autres champs)
a dû ajouter un 'GROUP BY id' à la fin de l'instruction SQL, et cela a fonctionné! J'avais entendu parler de 'GROUP_CONCAT' mais je ne l'ai pas mis ensemble qu'il pourrait faire des listes de relations comme ceci - sorte de vieux problème en SQL. Énorme sauveteur dans ce cas. Merci! – sbeam
Oh oui - bon point. J'ai modifié la réponse pour refléter votre commentaire. Heureux que tu es parvenu à le faire fonctionner! – richbs
Vraiment fait l'affaire. Merci! – Samin