2010-07-21 8 views
2

Je suis en train de configurer une nouvelle instance multisite WordPress 3.0 et j'aimerais utiliser Sphinx sur le serveur de base de données pour pouvoir rechercher le site Web principal. Idéalement, ce site primaire offrirait la possibilité de rechercher par rapport à son contenu (messages, pages, commentaires, profils de membres, mises à jour d'activités, etc.) ainsi qu'à tous les autres sites faisant partie du réseau. Étant donné que nous ajouterons régulièrement de nouveaux sites au réseau, j'aimerais pouvoir ajouter dynamiquement ces nouvelles tables au fichier Sphinx .conf (au lieu de modifier le fichier et de réindexer chaque fois que nous ajoutons un nouveau site).Configurer Sphinx pour indexer un ensemble dynamique de tables

Malheureusement, MySQL doesn't seem to support wildcards when specifying the table(s) dans une chaîne de requête. Le best solution I've come across for grabbing a dynamic set of tables is grepping mais je suis assez certain que je ne sais pas comment faire cela dans le fichier .conf (à moins que ce soit possible grâce à la sorcellerie magique).

Est-il possible de spécifier dynamiquement des tables à ajouter à l'index Sphinx? Ou est-ce que cela va causer de tels problèmes de performance que j'utilise le mauvais outil?

Répondre

0

Vous pouvez essayer de modifier dynamiquement le fichier .conf à la place.

0

Vous pouvez effectuer une requête à partir d'une vue MySQL qui agrège les nombreuses tables. Vous devriez recréer la vue à chaque changement de la liste des blogs, mais je crois que tous les hooks existent pour supporter cela et il devrait être assez facile de construire la requête de vue.

Le plus gros problème peut être d'essayer de trouver un ID d'enregistrement unique approprié pour les publications dans Sphinx. Il doit s'agir d'un INT droit, mais les ID de poste des différents blogs vont entrer en collision les uns avec les autres.

0

Je pense que vous pouvez créer des déclencheurs (INSERT/UPDATE/DELETE) dans MySQL sur les tables intéressées (p. Ex. Messages, commentaires, etc.) et migrer les données vers des tables globales centralisées indexées par Sphinx en temps réel.

Le point est comment vous pouvez créer ces déclencheurs automatiquement? Soit vous pouvez exécuter un travail cron pour rechercher de nouvelles tables dans MySQL, ou je crois que vous pouvez écrire un plugin Wordpress simple qui se connecte lorsqu'un blog est activé.

Questions connexes