Zend Framework, Lucene et les recherches numériques

Web, développement Pas de commentaires »

Bon à savoir: par défaut, le moteur de recherche Lucene fournit avec Zend Framework ne traite pas les valeurs numériques comme valeurs à indexer / rechercher.

Afin de pouvoir indexer ces valeurs, et effectuer des recherches les prenant en compte, changez simplement l’analyzer (la classe en charge de traiter chaque terme à indexer) par défaut, qui ne traite que les caractères ‘lettres’, par un analyzer qui traite également les valeurs numériques.  Par exemple, en insérant dans votre bootstrap:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());

Il est important que cette opération soit faite AVANT toute indexation ET AVANT toute recherche.

Plus d’infos dans la doc du framework.

Les quelques liens du week-end

Actu, Web, développement Pas de commentaires »

- FPDF, l’excellente lib PHP pour générer des PDF, sort en version 1.6 (si si, c’est possible! La version 1.53 datait de décembre 2004 :) )
- PHP 4 est mort! L’ultime release de la branche 4.4, la 4.4.9, est sortie hier.  Faut se mettre au 5 les gars, le 6 arrive bientôt ;)
- Facebook présente au travers de quelques slides une petite partie de leur backend, et comment ils gèrent le load (caching & performance / memcached) dû au traffic faisant de leur site le 4ème le plus visité au monde (via)
- Un article amusant (anglais) sur le cycle de développement d’une application. Et c’est tellement vrai.

Tutoriel: MySQL et les COLLATE

Web, développement Pas de commentaires »

Voila un petit tutoriel MySQL qui vous permettra de comprendre, je l’espère, l’utilité du COLLATE lors de la création de vos tables.

Lire la suite de cet article »

Ruby-on-Rails: uninitialized constant RubiGen

Web, développement Pas de commentaires »

Si vous avez le package Sproutcore installé, vous risquez de tomber sur l’erreur ci-dessous, lors de l’utilisation des scripts en ligne de commande du framework Ruby-on-Rails (ex: script/generate scaffold):

uninitialized constant RubiGen

La version 0.9.9 de Sproutcore provoque apparement ce problème, mettez-la simplement à jour et tout rentrera dans l’ordre (0.9.13 à l’heure de cet article).

L’architecture LinkedIn

Web, développement Pas de commentaires »

Lors de la conférence JavaOne 2008 qui s’est déroulée en mai, des employés LinkedIn on présenté quelques sides pour décrire l’architecture utilisée pour leur système (basé essentiellement sur des techno Java), ainsi que les évolutions et les apprentissages qu’ils ont pu faire depuis le lancement en 2003.  On y apprend notamment quelques grosses statistiques comme:

  • 22 millions de membres
  • 4+ millions de visiteurs uniques/mois
  • 40 millions de pages vues/jour
  • 2 millions de recherches/jour
  • 250.000 invitations envoyées/jour
  • 1 million de réponses envoyées
  • 2 millions de messages email/jour

mais aussi que l’entierté du network graph est stocké en RAM (22 millions de membres, ne l’oublions pas), et qu’il faut 8h pour recréer une instance en RAM (dans le Cloud) à partir des données sur disque…  Quelques astuces ont d’ailleurs été utilisées pour éviter de perdre du temps à recalculer toutes les relations d’un utilisateur, comme par exemple stocker en cache le résultat après le login, résultat qui ne se mettra à jour que si l’utilisateur-même apporte des modifs, pas ses relations.

Vous trouverez (en anglais) un article sur blog d’Oren Hurvitz, qui reprend les grandes lignes de la présentation.  Pour les slides de la conférence:

- LinkedIn - A Professional Social Network Built with Javaâ„¢ Technologies and Agile Practices
- LinkedIn Communication Architecture

WP Theme & Icons par N.Design Studio - Traduction : WordPress tuto
Flux RSS des articles Flux RSS des commentaires Log in