2010-06-29 8 views
0

On aurait normalement cette requête dans leur fichier sphinx.conf:Combinaison de tous les champs de texte dans un seul champ de recherche?

sql_query = SELECT id,text_field1,text_field2,text_field3 FROM table_name 

Y aurait-il beaucoup de différence si je combine tous les champs dans un champ de recherche de texte comme si?

sql_query = SELECT id, CONCAT(text_field1,text_field2,text_field3) as searchable_text FROM table_name 

Quels sont les avantages l'un par rapport à l'autre?

Merci!

Répondre

2

Je pense que l'une ou l'autre façon est généralement bonne ... cependant, Sphinx a la capacité de focaliser les requêtes sur certains champs (voir the extended query syntax examples). Si vous fusionnez toutes les colonnes dans un champ, vous perdrez cette capacité.

Vous perdrez également la possibilité de peser certains champs plus haut que d'autres.

0

CONCAT (text_field1, text_field2, text_field3) est erroné utilisation CONCAT (text_field1, ' ' text_field2,'', text_field3)

mais il est préférable de laisser indexer des champs distincts

recherche renvoie même résultat mais vous pouvez en sélectionner un si nécessaire.

'@ text_field2 foo'