1

Je tente d'utiliser Sphinx dans mon CMS comme une recherche sur l'ensemble du site. Étant donné que chaque modèle dans le CMS a différents champs de texte intégral, j'ai créé un index par modèle. Toutefois, selon le code forum de Sphinx, la recherche sur plusieurs index avec un schéma différent n'est pas prise en charge.Comment effectuer une recherche sur plusieurs modèles dans un CMS à l'aide de Sphinx?

Comment les membres du CMS utilisent-ils Sphinx pour votre recherche générale de site? Effectuer un appel à Sphinx par modèle et suivre les décalages de pagination? Créer un index énorme avec un champ d'index par modèle/champ? Y a-t-il une autre solution à laquelle je ne pense pas?

Répondre

0

Vous avez probablement résolu cela depuis longtemps, mais bien ...

Vous ne pouvez pas couvrir plusieurs index avec différents schémas dans un seul appel à -> Requête(), mais vous pouvez exécuter multiple queries with AddQuery() and RunQueries()

Alors

, au lieu d'appeler

->Query('keywords' , ('schemaA', 'schemaB', 'schemaC')) 

vous faites:

->AddQuery('keywords' , ('schemaA')); 
->AddQuery('keywords' , ('schemaB')); 
->AddQuery('keywords' , ('schemaC')); 
->RunQueries(); 

Vous obtiendrez un tableau de résultats, un pour chaque requête. Ensuite, dans vos résultats de recherche page vous pouvez afficher les résultats séparés par 'type' (ou schéma) comme:

___ RÉSULTATS PAGE __ _ __ _ _

Recherche de "bleu" ...

--- nous avons trouvé 23 résultats dans les véhicules ----

  • voiture 1
  • voiture 2
  • voiture 3
  • ..

--- nous avons trouvé 2 résultats dans des maisons ----

  • maison 1
  • maison 2
  • maison 3
  • ..

_ (fin) RÉSULTATS PAGE _ __ _ _