|
|
|
|
- Membre depuis
- 2003
- Messages
- 485
Plus
- Membre n°
- 8378
- Inscription
- 22 Jan 2003
- Sujets lancés
- 48
- Ancienneté
- 97 %
- Participation
- 38 %
- Temps en ligne
- 16 Jours, 0 Heure, 9 Minutes, 38 Secondes en ligne
[IDEE] Mots clés + recherche 3 lettres
23-01-2004 20:38
Pour faciliter les recherches sur le site, je propose de mettre des mots clés dans chaque nouveau topic, notamment en Section Technique.
Comme ça, hop, on trouve plus simplement les sujets qui intéressent.
Petit problème conséquent :
la recherche est actuellement limitée à des mots de 4 lettres minimum... du genre je cherche "mot clé" pour voir si l'idée à déjà été proposée... 2 mots de 3 lettres chacun... mal barré ça... (vous me direz certainement que je peux lancer une recherche sur "mots clef", mais "clef" est bien moins utilisé que "clé", enfin bref ceci n'est qu'un exemple).
Voilà en gros l'idée de ces petits mots qui aideraient sans aucun doute.
Bien entendu il faudrait définir des règles plus ou moins précises pour encore simplifier la recherche :
- mots aux singuliers
- 3 lettres (ou 4 mais parfois ce n'est pas simple) au minimum
- plusieurs synonymes, mais pas non plus une bible complète
- être le plus précis possible, mais cela va de soit.
etc...
Pour finir, un exemple :
en ce moment j'essaie de me renseigner sur les live cd linux, il serait alors bon que je mette en fin de post :
mots clés : livecd live linux mandrake etrange mandrakemove knoppix
ps : vous l'aurez bien vu, "etrange" s'est glissé parmi les autres, et constitue ~ici~ un abus; à éviter donc.

Comme ça, hop, on trouve plus simplement les sujets qui intéressent.
Petit problème conséquent :
la recherche est actuellement limitée à des mots de 4 lettres minimum... du genre je cherche "mot clé" pour voir si l'idée à déjà été proposée... 2 mots de 3 lettres chacun... mal barré ça... (vous me direz certainement que je peux lancer une recherche sur "mots clef", mais "clef" est bien moins utilisé que "clé", enfin bref ceci n'est qu'un exemple).
Voilà en gros l'idée de ces petits mots qui aideraient sans aucun doute.
Bien entendu il faudrait définir des règles plus ou moins précises pour encore simplifier la recherche :
- mots aux singuliers
- 3 lettres (ou 4 mais parfois ce n'est pas simple) au minimum
- plusieurs synonymes, mais pas non plus une bible complète
- être le plus précis possible, mais cela va de soit.
etc...
Pour finir, un exemple :
en ce moment j'essaie de me renseigner sur les live cd linux, il serait alors bon que je mette en fin de post :
mots clés : livecd live linux mandrake etrange mandrakemove knoppix
ps : vous l'aurez bien vu, "etrange" s'est glissé parmi les autres, et constitue ~ici~ un abus; à éviter donc.

| IP: Logguée
- Membre depuis
- 2002
- Messages
- 11567
Plus
- Membre n°
- 6223
- Inscription
- 17 Nov 2002
- Localisation
- Arras
- Âge
- 46 ans
- Sujets lancés
- 108
- Ancienneté
- 98 %
- Participation
- 95 %
- Temps en ligne
- 32 Jours, 1 Heure, 7 Minutes, 11 Secondes en ligne
- Membre depuis
- 2002
- Messages
- 4597
Plus
- Membre n°
- 2839
- Inscription
- 05 Jul 2002
- Localisation
- RP
- Sujets lancés
- 113
- Ancienneté
- 99 %
- Participation
- 79 %
- Temps en ligne
- 61 Jours, 10 Heures, 11 Minutes, 23 Secondes en ligne
- Membre depuis
- 2002
- Messages
- 14726
Plus
- Membre n°
- 2390
- Inscription
- 19 Jun 2002
- Localisation
- boyau rouge ( eleve a la chimay et au jack)
- Âge
- 60 ans
- Sujets lancés
- 254
- Ancienneté
- 99 %
- Participation
- 100 %
- Temps en ligne
- 74 Jours, 14 Heures, 6 Minutes, 19 Secondes en ligne

sinon, j'aimerais bien voir ce bouton clignotant ou bien violet fluo pour bien le voir , dans le meme style que

le oxmoiens seraient peut etre plus enclins a faire des recherches plutot que poster plusieur fois le meme sujet

__________________
ludovike
| IP: Logguée
- Membre depuis
- 2002
- Messages
- 1100
Plus
- Membre n°
- 802
- Inscription
- 28 Mar 2002
- Localisation
- ------>
- Âge
- 112 ans
- Sujets lancés
- 120
- Ancienneté
- 100 %
- Participation
- 53 %
- Temps en ligne
- 16 Jours, 12 Heures, 51 Minutes, 44 Secondes en ligne
bah moi, je me suis toujours demandé pourquoi le nombre minimum de lettres pour une recherche était de 4 lettres 

Je trouverais tellement plus simple de réduire ce chiffre à trois, car vous vous rendez pas compte le nombre de mots en trois lettres qui existent et que, justement, on ne peut chercher quand ça nous prend
Parce que l'histoire de l'astérisque, c'est bine beau, mais ne permet en tout cas pas une recherche detaillée et réduite au(x) mot(s) en moins de quatre lettres que l'on recherche...
Je soumets donc l'idée, moins contraignante que celle d'étrange, de pouvoir effectuer une recherche avec des mots de trois lettres, abaissant donc le minimum de mots pour une recherche à deux.
Ca pose un problème technique ? Ou de bande passante ? Ou que sais-je ?


Je trouverais tellement plus simple de réduire ce chiffre à trois, car vous vous rendez pas compte le nombre de mots en trois lettres qui existent et que, justement, on ne peut chercher quand ça nous prend

Parce que l'histoire de l'astérisque, c'est bine beau, mais ne permet en tout cas pas une recherche detaillée et réduite au(x) mot(s) en moins de quatre lettres que l'on recherche...
Je soumets donc l'idée, moins contraignante que celle d'étrange, de pouvoir effectuer une recherche avec des mots de trois lettres, abaissant donc le minimum de mots pour une recherche à deux.
Ca pose un problème technique ? Ou de bande passante ? Ou que sais-je ?
__________________

| IP: Logguée
- Membre depuis
- 2002
- Messages
- 9866
Plus
- Membre n°
- 7213
- Inscription
- 15 Dec 2002
- Localisation
- Copenhague
- Sujets lancés
- 426
- Ancienneté
- 97 %
- Participation
- 92 %
- Temps en ligne
- 103 Jours, 6 Heures, 15 Minutes, 39 Secondes en ligne
C'est relatif à la taille de la base de données. En descendant à 3 lettres, tu exploses la taille en comptant tous les "les", les "ici", les "ces", etc... Donc comme la taille est grosse, tu prends de la mémoire à soul^ et surtout beaucoup de temps CPU...
Le sujet avait déjà été discuté (augmenter la recherche aux mots de 3 lettres) et soul^ avait dit "non"...
Le sujet avait déjà été discuté (augmenter la recherche aux mots de 3 lettres) et soul^ avait dit "non"...
| IP: Logguée
- Membre depuis
- 2002
- Messages
- 17466
Plus
- Membre n°
- 1
- Inscription
- 22 Feb 2002
- Localisation
- La Défense
- Âge
- 49 ans
- Sujets lancés
- 3067
- Ancienneté
- 100 %
- Participation
- 100 %
- Temps en ligne
- 104 Jours, 21 Heures, 6 Minutes, 20 Secondes en ligne
Message écrit par dom95, le 23-01-2004 à 20:45
Pour info, étrange, la recherche n'est pas vraiment limitée à des mots de 4 lettres.
En effet, il suffit d'ajouter * devant et/ou derrière pour que les mots de 2 et 3 lettres soient pris en compte dans la recherche.
En effet, il suffit d'ajouter * devant et/ou derrière pour que les mots de 2 et 3 lettres soient pris en compte dans la recherche.
Non c'est faux. C'est une rumeur qui perdure et que je m'efforce de démentir à chaque fois. C'est un peu long à expliquer par écrit, mais le moteur de recherche indexe les mots de 4 à 15 caractères. Ni plus ni moins. Un mot comme "de" ne sera donc pas indexé, et le mot "géographiquement" non plus. Avec ou sans * ... L'astérisque permet de remplacer une suite indéfinie de caractères, mais comme seuls les mots de 4 à 15 caractères sont dans l'index, seuls les mots de ce même intervalle peuvent être trouvés, avec * ou pas.
Vous ne trouverez donc jamais le mot "mot" en cherchant "mot*". Au mieux vous trouverez "mots" ou "moteur" etc...
Message écrit par castypique, le 23-01-2004 à 21:04
bah moi, je me suis toujours demandé pourquoi le nombre minimum de lettres pour une recherche était de 4 lettres 

Je trouverais tellement plus simple de réduire ce chiffre à trois, car vous vous rendez pas compte le nombre de mots en trois lettres qui existent et que, justement, on ne peut chercher quand ça nous prend
Parce que l'histoire de l'astérisque, c'est bine beau, mais ne permet en tout cas pas une recherche detaillée et réduite au(x) mot(s) en moins de quatre lettres que l'on recherche...
Je soumets donc l'idée, moins contraignante que celle d'étrange, de pouvoir effectuer une recherche avec des mots de trois lettres, abaissant donc le minimum de mots pour une recherche à deux.
Ca pose un problème technique ? Ou de bande passante ? Ou que sais-je ?


Je trouverais tellement plus simple de réduire ce chiffre à trois, car vous vous rendez pas compte le nombre de mots en trois lettres qui existent et que, justement, on ne peut chercher quand ça nous prend

Parce que l'histoire de l'astérisque, c'est bine beau, mais ne permet en tout cas pas une recherche detaillée et réduite au(x) mot(s) en moins de quatre lettres que l'on recherche...
Je soumets donc l'idée, moins contraignante que celle d'étrange, de pouvoir effectuer une recherche avec des mots de trois lettres, abaissant donc le minimum de mots pour une recherche à deux.
Ca pose un problème technique ? Ou de bande passante ? Ou que sais-je ?
Pour des raisons d'efficacité, tout simplement.
Vous n'avez pas idée de la place occupée par l'index. L'idée n'est pas que l'index soit plus volumineux que le contenu lui même! Il est déjà énorme, en indexant les mots de 3 lettres, l'index grossirait de façon exponentielle, ce qui engendrerait des temps de recherche proportionnels.... Ce n'est donc pas envisageable, non seulement pour des raisons de volume de données complètement abbhérant, de performances dégradées, mais aussi d'efficacité : imaginez chercher "et*".... c'est les 3/4 des 330000 posts du forum que vous auriez en résultat.... Pas très efficace!
| IP: Logguée
- Membre depuis
- 2003
- Messages
- 485
Plus
- Membre n°
- 8378
- Inscription
- 22 Jan 2003
- Sujets lancés
- 48
- Ancienneté
- 97 %
- Participation
- 38 %
- Temps en ligne
- 16 Jours, 0 Heure, 9 Minutes, 38 Secondes en ligne
- Membre depuis
- 2002
- Messages
- 17466
Plus
- Membre n°
- 1
- Inscription
- 22 Feb 2002
- Localisation
- La Défense
- Âge
- 49 ans
- Sujets lancés
- 3067
- Ancienneté
- 100 %
- Participation
- 100 %
- Temps en ligne
- 104 Jours, 21 Heures, 6 Minutes, 20 Secondes en ligne
Allez... petit approfondissement
23-01-2004 21:57
Ajout... pour mieux comprendre...
DICTIONNAIRE
Il faut savoir que le moteur de recherche ne cherche pas dans les posts, mais dans un dictionnaire, qui est constitué justement par les mots de 4 à 15 caractères trouvés dans les posts. En fait à chaque fois qu'un mot "nouveau" est posté, il entre dans le dictionnaire, avec une étiquette (numéro), pour prendre moins de place. Donc chaque mot est associé à un nombre, ça c'est pour le dictionnaire.
INDEX
Ensuite est créé l'index. L'index est l'association des mots avec les numéros de posts dans lesquels ils se trouvent....
Je donne un exemple. Si le post n°335087 du forum contient "ceci est un test", seuls les mots "ceci" et "test" seront ajoutés au dictionnaire (s'ils ne le sont pas déjà) avec un numéro, mettons ceci=12015 et test=12016.
Et bien dans l'index, il y aura une entrée qui dit "le mot 12015 se trouve dans le post 335087" et "le mot 12016 se trouve dans le post 335087" (l'association est directe hein : 12015-335087 & 12016-335087)
MOTEUR DE RECHERCHE
Quand vous utilisez le moteur de recherche maintenant, vous tapez une expression, disons que vous cherchez "test".
Le forum va alors chercher ce mot dans le dictionnaire, et va trouver que chercher "test" dans le forum revient à chercher tous les posts qui contiennent le mot 12016.
On cherche alors dans l'index tous les numéros de posts associés à 12016 et on trouve évidemment 335087 (et les autres s'il y en a).
Le moteur affiche alors au choix les résultats
- par message (facile, c'est ce qu'il trouve directement dans l'index)
- par thread (le plus courant) en passant par une étape supplémentaire de recherche du n° de thread associé au n° de post 335087.
Voilà...
Donc si vous avez bien compris ce fonctionnement simple, vous comprenez du même coup :
- le coup de l'astérisque : puisque le moteur de recherche cherche uniquement les résultats dans l'index, et que l'index est construit à partir du dictionnaire qui ne comprend QUE les mots de 4 à 15 caractères, il sera impossible de trouver des posts avec des mots de 3 lettres, même en feintant par un astérisque: dans ce cas de figure, la recherche est effectuée différement : on commence par chercher dans le dictionnaire tous les numéros de mots de 4 à 15 lettres représentées par le masque de recherche, et on fait une recherche globale de tous les numéros de posts contenant au moins 1 des numéros de mots et hop on a les résultats.
- qu'indexer les mots très courts augmente ENORMEMENT le dictionnaire, augmente encore beaucoup plus l'index... et donc quand vous utilisez le moteur de recherche, PEU IMPORTE CE QUE VOUS CHERCHEZ, il faut extraire de l'index les n° de posts correspondant aux numéros de mots de votre expression de recherche, et que donc, plus l'index est énorme, plus ça prend du temps. Dites vous bien qu'ajouter un seul caractère à l'index (les mots de 3 lettres) reviendrait à doubler facilement l'index, et donc à doubler la ressource CPU nécessaire à CHAQUE recherche...
J'espère que vous comprenez mieux maintenant
DICTIONNAIRE
Il faut savoir que le moteur de recherche ne cherche pas dans les posts, mais dans un dictionnaire, qui est constitué justement par les mots de 4 à 15 caractères trouvés dans les posts. En fait à chaque fois qu'un mot "nouveau" est posté, il entre dans le dictionnaire, avec une étiquette (numéro), pour prendre moins de place. Donc chaque mot est associé à un nombre, ça c'est pour le dictionnaire.
INDEX
Ensuite est créé l'index. L'index est l'association des mots avec les numéros de posts dans lesquels ils se trouvent....
Je donne un exemple. Si le post n°335087 du forum contient "ceci est un test", seuls les mots "ceci" et "test" seront ajoutés au dictionnaire (s'ils ne le sont pas déjà) avec un numéro, mettons ceci=12015 et test=12016.
Et bien dans l'index, il y aura une entrée qui dit "le mot 12015 se trouve dans le post 335087" et "le mot 12016 se trouve dans le post 335087" (l'association est directe hein : 12015-335087 & 12016-335087)
MOTEUR DE RECHERCHE
Quand vous utilisez le moteur de recherche maintenant, vous tapez une expression, disons que vous cherchez "test".
Le forum va alors chercher ce mot dans le dictionnaire, et va trouver que chercher "test" dans le forum revient à chercher tous les posts qui contiennent le mot 12016.
On cherche alors dans l'index tous les numéros de posts associés à 12016 et on trouve évidemment 335087 (et les autres s'il y en a).
Le moteur affiche alors au choix les résultats
- par message (facile, c'est ce qu'il trouve directement dans l'index)
- par thread (le plus courant) en passant par une étape supplémentaire de recherche du n° de thread associé au n° de post 335087.
Voilà...
Donc si vous avez bien compris ce fonctionnement simple, vous comprenez du même coup :
- le coup de l'astérisque : puisque le moteur de recherche cherche uniquement les résultats dans l'index, et que l'index est construit à partir du dictionnaire qui ne comprend QUE les mots de 4 à 15 caractères, il sera impossible de trouver des posts avec des mots de 3 lettres, même en feintant par un astérisque: dans ce cas de figure, la recherche est effectuée différement : on commence par chercher dans le dictionnaire tous les numéros de mots de 4 à 15 lettres représentées par le masque de recherche, et on fait une recherche globale de tous les numéros de posts contenant au moins 1 des numéros de mots et hop on a les résultats.
- qu'indexer les mots très courts augmente ENORMEMENT le dictionnaire, augmente encore beaucoup plus l'index... et donc quand vous utilisez le moteur de recherche, PEU IMPORTE CE QUE VOUS CHERCHEZ, il faut extraire de l'index les n° de posts correspondant aux numéros de mots de votre expression de recherche, et que donc, plus l'index est énorme, plus ça prend du temps. Dites vous bien qu'ajouter un seul caractère à l'index (les mots de 3 lettres) reviendrait à doubler facilement l'index, et donc à doubler la ressource CPU nécessaire à CHAQUE recherche...
J'espère que vous comprenez mieux maintenant

| IP: Logguée
- Membre depuis
- 2003
- Messages
- 19502
Plus
- Membre n°
- 7849
- Inscription
- 06 Jan 2003
- Localisation
- Augustoritum
- Sujets lancés
- 319
- Ancienneté
- 97 %
- Participation
- 100 %
- Temps en ligne
- 95 Jours, 0 Heure, 24 Minutes, 20 Secondes en ligne
- Membre depuis
- 2002
- Messages
- 9866
Plus
- Membre n°
- 7213
- Inscription
- 15 Dec 2002
- Localisation
- Copenhague
- Sujets lancés
- 426
- Ancienneté
- 97 %
- Participation
- 92 %
- Temps en ligne
- 103 Jours, 6 Heures, 15 Minutes, 39 Secondes en ligne
C'est joli, je trouve : énorme complexité spatiale mais ridicule complexité temporelle... A titre indicatif, je serais curieux de savoir quelle taille fait ton index et combien d'entrées il y a dans ton dictionnaire.
| IP: Logguée
- Membre depuis
- 2002
- Messages
- 2694
Plus
- Membre n°
- 6569
- Inscription
- 26 Nov 2002
- Localisation
- Parlah
- Âge
- 53 ans
- Sujets lancés
- 160
- Ancienneté
- 97 %
- Participation
- 69 %
- Temps en ligne
- 21 Jours, 12 Heures, 4 Minutes, 45 Secondes en ligne
- Membre depuis
- 2002
- Messages
- 17466
Plus
- Membre n°
- 1
- Inscription
- 22 Feb 2002
- Localisation
- La Défense
- Âge
- 49 ans
- Sujets lancés
- 3067
- Ancienneté
- 100 %
- Participation
- 100 %
- Temps en ligne
- 104 Jours, 21 Heures, 6 Minutes, 20 Secondes en ligne
Message écrit par Zakath, le 23-01-2004 à 22:01
C'est joli, je trouve : énorme complexité spatiale mais ridicule complexité temporelle... A titre indicatif, je serais curieux de savoir quelle taille fait ton index et combien d'entrées il y a dans ton dictionnaire.
Et bien tu vas haluciner
:Place occupée par les POSTS : 147,5 Mo (353606 posts)
Place occupée par les THREADS : 3,2 Mo (23399 threads)
Place occupée par le DICTIONNAIRE : 26,7 Mo (374432 mots ! Le Larousse a du soucis à se faire lol)
Place occupée par l'INDEX : 182,5 Mo (8021045 associations!)
On s'aperçoit donc que pour des raisons de performance et d'efficacité, pour 150 Mo de données réelles, il y a plus de 200Mo de "metadata" rien que pour que le moteur de recherche soit rapide.... Comprenez bien que les metadata ne servent à rien, si ce n'est accélerer le traitement : si je supprimais la fonction recherche du forum, la base de données serait allégée d'autant....
Donc imaginez en indexant les mots de 3 lettres, c'est ce que je disais plus haut, pour 150Mo de données, on aurait 300Mo de metadata pour le moteur de recherche. Ce serait un peu ridicule!
Dernière chose : par défaut vBulletin indexe les mots de 5 à 14 caractères (de mémoire)... J'avais déjà ramené à 4 et augmenté à 15 ce qui avait fait augmenter la taille du dictionnaire de façon exponentielle... Je ne parle même pas de l'index

Je me fous de la place, c'est pour ça que je l'ai fait... Même 300Mo ça me dérangererait pas... mais après c'est une question de temps de recherche... le CPU et la mémoire seraient insuffisant pour chercher dans 300Mo de données à chaque requête... C'est un bi-xeon voire même un quadri-xeon avec 2Go de RAM qui serait correctement taillés pour ça....
| IP: Logguée
- Membre depuis
- 2002
- Messages
- 9866
Plus
- Membre n°
- 7213
- Inscription
- 15 Dec 2002
- Localisation
- Copenhague
- Sujets lancés
- 426
- Ancienneté
- 97 %
- Participation
- 92 %
- Temps en ligne
- 103 Jours, 6 Heures, 15 Minutes, 39 Secondes en ligne
Effectivement... 
Mais je suppose que les données sont sous forme arborescente, donc avec une base de donnée bien indexée, la recherche se fait en un temps logarithmique, non ?
Donc, doubler la taille de la base reviendrait à augmenter de ln2 le temps de recherche, donc l'usage CPU.
Erreur, mais où ? 

Mais je suppose que les données sont sous forme arborescente, donc avec une base de donnée bien indexée, la recherche se fait en un temps logarithmique, non ?
Donc, doubler la taille de la base reviendrait à augmenter de ln2 le temps de recherche, donc l'usage CPU.
Erreur, mais où ? 
| IP: Logguée
- Membre depuis
- 2002
- Messages
- 17466
Plus
- Membre n°
- 1
- Inscription
- 22 Feb 2002
- Localisation
- La Défense
- Âge
- 49 ans
- Sujets lancés
- 3067
- Ancienneté
- 100 %
- Participation
- 100 %
- Temps en ligne
- 104 Jours, 21 Heures, 6 Minutes, 20 Secondes en ligne
Message écrit par soul^keeper, le 23-01-2004 à 22:12
Place occupée par l'INDEX : 182,5 Mo (8021045 associations!)
En clair, à chaque fois que vous faites une recherche, vous demandez au processeur de faire le tri dans plus de 8 millions d'entrées... et de vous afficher que celles qui vous intéressent...
On a l'impression qu'on cherche dans 330000 posts mais non... on cherche dans 8 millions de fiches.... j'estime qu'on dépasserait facilement les 16 millions de fiches en ajoutant les mots de 3 lettres.
| IP: Logguée
|
|

