Myriad Blog 1.3.0 Thursday, Jul 24th, 2014 at 07:59pm 

Tuesday, Mar 23rd, 2010 at 05:02pm
Kooplet étape 32

Un peu de technique aujourd'hui.
 
Le problème de corruption de la base de données a été localisé. Il s'agissait d'une erreur bête dans l'utilisation d'une "regular expression" (regexp) dans un des scripts.  
Pour les "techies", nous avions simplement oublié que le caractère "." ne voulait pas dire "n'importe quel caractère" mais "n'importe quel caractère sauf le retour chariot".
 
Cela tronquait les phrases musicales sur environ 2% des fichiers de la base. Nous l'avons corrigé.
 
Ensuite, nous avons travaillé sur l'accélération des recherches. Afin d'accélerer les comparaisons de séquences entre ce que cherche l'utilisateur et ce que contient un fichier, nous avons créé, pour chaque portée, une signature de 256 bits qui permet d'éliminer rapidement les portées dans lesquelles il n'y a aucune chance de trouver la séquence demandée.  
Cette signature avait été créée de manière empirique, mais maintenant que la base est plus complète, nous avons pu établir des statistiques détaillées sur 580000 portées (140 millions de notes). Un arbre binaire partiel sur les probabilités de présence de chaque note nous permet ainsi d'optimiser l'efficacité de cette signature.
 
Il va cependant nous falloir recréer les signatures de toute la base de données, ce qui prend plusieurs heures, avant de valider le nouvel algorithme.
 
Voila pour aujourd'hui. Les allergiques à la technique peuvent maintenant cesser d'éternuer et ranger leur mouchoir
by Olivier Guillion
Comments

Comment from Jean-Armand Moroni Tuesday, Mar 23rd, 2010 at 10:38pm
Encore de la techno
Tiens, vous n'aviez pas d'index ? Vous ne cherchiez tout de même pas dans les 580000 portées à chaque fois ?
 
J'imaginais que vous aviez bâti un index avec toutes les combinaisons de 1 à n notes (n=5 par exemple, en ne tenant pas compte des octaves) et pointant vers les portées qui contiennent cette combinaison.
 
C'est comme ça que fonctionnent les moteurs de recherche habituellement. Ca s'utilise aussi pour trouver des données qui n'ont pas grand chose à voir avec des mots (des chaines moléculaires par exemple).
 
On peut ensuite accéder à l'index par un arbre binaire, mais j'ai l'impression que ce n'est pas ce que vous faîtes.


Most recent first
Oldest first

Top of page
Last update:  (c) Myriad 2013