nan nan...
par exemple découpage en 4, si j'ai hash(nil) = 4321, hash(ours) = 1234, hash(foret) = b0b0, hash(censored) = 6969, et ben pour chaque sujet je partitionne les mots en ceux dont le hash est compris entre 0000 et 3fff (region1), 4000 et 7ffff (region2), etc...
donc pour chercher "censored", je vois qu'il est dans la region 2, donc ma requete SQL sera "sujet.region2 LIKE 6969", et sujet.region2 sera en moyenne 4x plus court que la totalité des mots (ici j'ai que 2 mots, nil et censored). et ca marche aussi si on veut rechercher plusieurs mots, sauf qu'évidemment plus on recherche de mots plus il faut examiner de régions
on peut raffiner encore, puisque pour un sujet avec 3 mots ca sert a rien de couper en 4, et inversement pour un sujet avec 100000 mots il vaudrait mieux couper en plus ; pour ca, on peut regrouper les sujets par groupe de taille (éventuellement dans des tables différentes, ou simplement avec un flag en début de sujet pour indiquer le groupe voulu) : les petits sujets seront pas énormément subdivisés, alors que les gros sujets seront subdivisés plus finement.
mais bon la mon but c'est juste de montrer qu'on est pas obligé de rechercher les mots un par un, je suis sur qu'on pourrait faire bien plus subtil et efficace si on avait acces a la BDD
