{"id":171,"date":"2011-11-16T14:30:52","date_gmt":"2011-11-16T12:30:52","guid":{"rendered":"https:\/\/www.ideematic.com\/actualites\/?p=171"},"modified":"2011-11-16T14:30:52","modified_gmt":"2011-11-16T12:30:52","slug":"indexation-de-contenus-multi-langue-sur-rails3-avec-sphinx-et-globalize3","status":"publish","type":"post","link":"https:\/\/www.ideematic.com\/actualites\/2011\/11\/indexation-de-contenus-multi-langue-sur-rails3-avec-sphinx-et-globalize3\/","title":{"rendered":"Indexation de contenus multi-langue sur Rails3 avec Sphinx et Globalize3"},"content":{"rendered":"
[vc_row][vc_column][vc_column_text]Sphinx<\/a> est un serveur de recherche full text permettant d’indexer et de rechercher dans des donn\u00e9es stock\u00e9es soit dans des bases de donn\u00e9es SQL, no SQL ou alors dans un syst\u00e8me de fichiers.<\/p>\n Il peut facilement s’int\u00e9grer \u00e0 une application Ruby On Rails via la gem Thinking Sphinx.<\/a> On d\u00e9finit alors dans les mod\u00e8les tous les attributs qui doivent \u00eatre index\u00e9s. Cela fonctionne parfaitement lorsque notre application utilise une seule et unique locale.<\/p>\n Prenons l’exemple d’une application dans laquelle nous avons d\u00e9fini un mod\u00e8le Actuality :<\/p>\n Que se passe-t’il donc lorsque l’application d\u00e9velopp\u00e9e est internationalis\u00e9e et que les traductions des contenus stock\u00e9s en base doivent \u00eatre index\u00e9s par locale ?<\/p>\n Avant d’arriver au r\u00e9sultat final, jetons un coup d’oeil rapide sur la gestion de la traduction des contenus.<\/p>\n\nclass Actuality < ActiveRecord::Base\n\n validates :title, :presence => true\n validates :body, :presence => true\n\n define_index do\n indexes :title\n indexes :summary\n indexes :body\n\n set_property :delta => true\n end\nend\n<\/pre>\n