Il semble y avoir un petit "-" avant le nombre de messages sur les fiches thématiques lorsque l'on clique sur l'option de tri "# de personnes", ce qui donne l'impression qu'il y a un nombre négatif de messages. Voir capture d'écran :
Que vous attendiez-vous à voir que vous ne l'avez pas fait ?
je m'attendais à voir des entiers positifs.
https://publiclab.org/tags?sort=followers&order=asc
Cela peut nous aider à diagnostiquer le problème :
liz
Quelqu'un a-t-il des liens de code à portée de main qu'il pourrait ajouter ici ? Merci d'avance!
Hey @ebarry, je pense que c'est un problème plus grave en fait :sweat_smile: j'avais fait des modifications pour cela ici https://github.com/publiclab/plots2/pull/7609 mais j'ai dû tout gâcher et calculer le mauvais compte que j'ai pense :déçu: Boucle dans j'aurai peut-être besoin d'aide pour résoudre ce problème :sweat_smile:
Salut @Tlazypanda, pouvons-nous regarder d'autres endroits où le code de type Tag.counter
est utilisé et essayer de passer à cela ?
https://github.com/publiclab/plots2/pull/7609/files#diff -8fe92870a7f027a46eed82a51c5c16bcR118
Cependant, les décomptes sont très peu décalés. Je me demande s'il s'agit d'un problème de spam et d'affecter un peu les mathématiques ?
Voir par exemple la différence entre ces décomptes :
Nous pouvons chercher où le compte 236 est calculé et passer à cela, peut-être ?
Cela utilise donc une variable d'instance générée par le contrôleur :
Je crois que c'est ici que cela est calculé:
Hé @jywarren , ce que je peux voir dans tag/:id, c'est-à-dire que la page d'affichage de tag, c'est que nous affichons uniquement des notes de recherche là-bas et dans les cartes thématiques, nous essayons d'afficher des notes de recherche + des questions.
Donc, je pense que ce que nous devons faire, c'est que nous devons récupérer les notes de la même manière que nous le faisons dans tag#show et pour afficher le nombre au bas de la carte de sujet, nous aurons juste besoin d'utiliser cette expression mathématique :
Nombre de notes avec le tagname-Nombre de notes affichées dans la carte de sujet
nous devons récupérer les notes de la même manière que nous le faisons dans tag#show
Salut, c'est juste ! notant le concept de "source unique de vérité" ici : https://github.com/publiclab/plots2/issues/6855#issuecomment -578331475
Je pense que nous devrions utiliser les mêmes calculs ici : https://github.com/publiclab/plots2/pull/7476 (basé sur #6855).
@urvashigupta7 merci beaucoup d'être intervenu ! Seriez-vous intéressé à faire ces changements?
Je pense également que dans https://github.com/publiclab/plots2/pull/7476/ , nous ne filtrons pas le spam. Donc sur ces lignes, nous devrions probablement ajouter .where(status: 1)
:
Ce code dépend aussi de ceci, qui ne filtre pas le spam :
De même, ce code doit également filtrer le spam avec le même filtre :
Hmm. Il semble que nous filtrons le spam du calcul @total_posts
, car il s'exécute /après/ ces lignes :
Cependant, ni Tag.counter
ni Node.for_tagname_and_type
filtrent. C'est peut-être ça l'irrégularité ?
Le compte ici n'est toujours pas correct, je pense. Par exemple, https://stable.publiclab.org/tags répertorie maintenant 692 publications pour balloon-mapping
mais voici les statistiques de cette balise (dans stable) :
Je pense que nous devons dépendre de ce correctif : https://github.com/publiclab/plots2/pull/8245
alors nous pouvons vérifier cela à nouveau. Réouverture pour un instant... les doigts
https://github.com/publiclab/plots2/pull/8245 est maintenant terminé ! Et a des tests unitaires, si bien. OK, maintenant cela peut fonctionner...
OK, ça dit 573 posts »
-- hmm
Notes de recherche 469
Question 37
Wiki pages 77
Personnes 346
Je veux dire, notes plus wikis = 546...? et plus de questions est 583?
Maintenant, en testant la balise tests
sur stable, je soupçonne qu'il peut y avoir une mise en cache en cours. L'ajout de cette balise à une nouvelle note, https://stable.publiclab.org/notes/aidanswope/05-21-2019/angel-s-point-balloon-map-updated , n'a pas entraîné l'onglet de notes allant de 7 à 8, bien que tag.count
renvoie 8 comme le résultat de tag.run_count
et notant le lien vers https://github.com/publiclab/plots2/issues/8244
YESSSSS c'est 5 minutes en cache : https://github.com/publiclab/plots2/blob/e97eff7464a544a97f4b38f169f76250600b3148/app/views/tag/show.html.erb#L133
OK, donc en traçant le nombre de tabulations :
Node.where(status: 1, type: 'note').includes(:revision, :tag).references(:term_data, :node_revisions).where('term_data.name = ? OR term_data.parent = ?', 'balloon-mapping', 'balloon-mapping').where.not(nid: qids).count
=> 470
Par rapport au nombre de cartes thématiques :
NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').where.not(nid: qids).count
=> 467
😭
Ces trois éléments font la différence : [6129, 7236, 7414]
--
[#
,
,
]
Très étrange! pour 2 raisons : 3 notes ne sont pas les mêmes que les 10 manquantes (je pensais que nous n'avions pas encore examiné les questions), ET, ces trois notes semblent être normales sauf qu'une était en février 2013 et 2 en mai 2013 :
(mise à jour : voir ci-dessous pour les noms de balises en double)
Intéressant aussi :
Node.where(status: 1, type: 'note').includes(:revision, :tag).references(:term_data, :node_revisions).where('term_data.name = ? OR term_data.parent = ?', 'balloon-mapping', 'balloon-mapping').where(nid: qids).count
=> 29
Cela s'accorde avec :
NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').where(nid: qids).count
contre 37 comme indiqué sur l'onglet, qui est calculé avec :
Ah ! Cette dernière section montre que les messages étiquetés question:balloon-mapping
sont inclus dans ce décompte même s'ils n'ont pas le tag de base balloon-mapping
!!!
Les 8 messages suivants semblent avoir question:balloon-mapping
mais pas balloon-mapping
:
[13556, 15762, 16426, 18994, 20694, 11301, 12251, 19625]
OK, donc cela nous amène à moins de 2 nœuds. Comparons maintenant manuellement :
irb(main):040:0> NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').count
=> 496
irb(main):041:0> Node.where(status: 1, type: 'note').includes(:tag).references(:term_data).where('term_data.name = ?', 'balloon-mapping').count
=> 499
irb(main):022:0> Node.where(status: 1, type: 'note').includes(:revision, :tag).references(:term_data, :node_revisions).where('term_data.name = ? OR term_data.parent = ?', 'balloon-mapping', 'balloon-mapping').collect(&:nid)
=> [146, 253, 254, 268, 403, 511, 724, 732, 743, 913, 1482, 1489, 1620, 1626, 1627, 1632, 1715, 1849, 1968, 1994, 2126, 2138, 2144, 2476, 2589, 2930, 3115, 3325, 4649, 4952, 5038, 5220, 5250, 5978, 6934, 7050, 7189, 7294, 7314, 7491, 7577, 7593, 7995, 8189, 8907, 8913, 8914, 8950, 9019, 9032, 9042, 9086, 9417, 9434, 9742, 9888, 9977, 10541, 11019, 11100, 11223, 11574, 11582, 11827, 12201, 12240, 12491, 12619, 12708, 13095, 13424, 13945, 14022, 14095, 14183, 14185, 14219, 14515, 14572, 14587, 14597, 14600, 14611, 14620, 14813, 14907, 14909, 14983, 15545, 15568, 16591, 16653, 16746, 16877, 18316, 19153, 19272, 19462, 19558, 19578, 19620, 19762, 20331, 23549, 24101, 24102, 1795, 6635, 347, 369, 439, 444, 792, 861, 1665, 1668, 1962, 2135, 2143, 2152, 2245, 2277, 2783, 2784, 3563, 3635, 3670, 4482, 4516, 4755, 4760, 4923, 4925, 6059, 7641, 10181, 10489, 11101, 11724, 13243, 13880, 13948, 17322, 64, 166, 202, 344, 1666, 1816, 1818, 1819, 2919, 3354, 3736, 3821, 4087, 8020, 8947, 9301, 11199, 11260, 11261, 11755, 12161, 1544, 1739, 1742, 1892, 2006, 5494, 9353, 10705, 828, 1515, 1786, 1877, 1926, 1949, 2121, 2625, 2666, 2677, 2846, 2892, 2961, 4092, 4907, 5394, 5415, 5664, 7132, 7367, 7368, 7717, 7964, 8400, 10243, 6175, 9507, 4636, 6293, 3014, 6624, 9806, 10289, 10554, 11278, 11391, 12104, 12622, 12894, 13143, 9935, 10036, 10196, 10450, 11283, 11719, 11769, 12237, 10246, 10605, 2462, 9497, 1889, 2131, 2443, 3026, 4127, 4252, 4673, 5538, 5893, 6608, 8034, 8902, 8959, 9644, 9707, 10045, 10162, 10335, 10336, 10337, 10373, 10540, 10570, 11107, 11110, 11112, 11124, 11143, 11175, 11298, 11336, 12053, 12203, 12590, 16984, 19515, 19580, 23822, 2163, 3634, 7620, 10166, 11056, 11319, 11589, 1541, 1652, 1676, 1677, 1746, 2154, 2237, 2275, 2311, 2623, 2785, 3454, 3652, 3822, 4014, 4691, 4720, 4950, 5161, 7785, 8866, 8926, 8928, 8937, 8958, 8986, 9759, 9915, 10101, 10230, 10244, 10302, 10311, 10374, 10523, 10602, 11021, 11078, 11103, 11253, 11726, 11988, 12686, 12752, 12757, 13400, 13845, 14116, 14660, 14713, 14756, 1716, 2660, 7191, 7192, 1743, 1636, 1900, 9317, 10651, 1741, 13904, 3096, 2352, 2824, 4091, 2715, 6080, 6082, 2732, 3801, 3908, 4545, 7121, 10284, 13791, 10631, 4921, 6751, 9429, 9743, 11577, 17331, 6073, 9858, 10711, 11118, 6525, 10267, 9034, 11252, 11268, 8033, 8868, 10159, 10214, 9027, 9785, 9033, 9076, 9299, 14501, 14508, 14562, 21733, 10282, 9909, 11178, 11738, 10024, 12667, 11262, 11343, 11978, 11983, 11992, 11826, 11061, 10227, 10428, 11077, 11131, 11137, 11280, 11281, 11518, 11551, 11807, 11812, 11947, 12039, 14158, 14729, 14943, 15641, 16273, 16349, 18560, 19269, 19286, 21547, 10343, 14852, 14901, 15352, 15387, 10612, 10638, 10986, 10994, 20181, 11002, 11127, 11128, 11183, 12166, 11342, 11494, 11955, 11673, 11707, 11711, 12190, 18839, 13802, 14595, 12227, 15912, 14007, 13093, 13096, 12981, 13102, 13160, 13194, 13196, 13227, 13242, 13267, 13278, 13281, 13298, 14168, 15161, 23143, 14058, 14766, 13748, 13839, 15603, 14241, 14179, 14239, 14246, 14240, 14255, 14488, 14487, 14245, 14785, 15160, 14703, 14995, 16571, 15172, 15179, 15424, 15713, 15732, 16141, 16284, 16334, 16382, 17387, 17498, 17499, 18498, 16960, 19689, 17815, 19394, 19464, 19650, 19955, 19476, 19477, 23203, 6129, 7236, 7414]
vs:
irb(main):024:0> NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').collect(&:nid)
=> [146, 253, 254, 268, 403, 511, 724, 732, 743, 913, 1482, 1489, 1620, 1626, 1627, 1632, 1715, 1849, 1968, 1994, 2126, 2138, 2144, 2476, 2589, 2930, 3115, 3325, 4649, 4952, 5038, 5220, 5250, 5978, 6934, 7050, 7189, 7294, 7314, 7491, 7577, 7593, 7995, 8189, 8907, 8913, 8914, 8950, 9019, 9032, 9042, 9086, 9417, 9434, 9742, 9888, 9977, 10541, 11019, 11100, 11223, 11574, 11582, 11827, 12201, 12240, 12491, 12619, 12708, 13095, 13424, 13945, 14022, 14095, 14183, 14185, 14219, 14515, 14572, 14587, 14597, 14600, 14611, 14620, 14813, 14907, 14909, 14983, 15545, 15568, 16591, 16653, 16746, 16877, 18316, 19153, 19272, 19462, 19558, 19578, 19620, 19762, 20331, 23549, 24101, 24102, 1795, 6635, 347, 369, 439, 444, 792, 861, 1665, 1668, 1962, 2135, 2143, 2152, 2245, 2277, 2783, 2784, 3563, 3635, 3670, 4482, 4516, 4755, 4760, 4923, 4925, 6059, 7641, 10181, 10489, 11101, 11724, 13243, 13880, 13948, 17322, 64, 166, 202, 344, 1666, 1816, 1818, 1819, 2919, 3354, 3736, 3821, 4087, 8020, 8947, 9301, 11199, 11260, 11261, 11755, 12161, 1544, 1739, 1742, 1892, 2006, 5494, 9353, 10705, 828, 1515, 1786, 1877, 1926, 1949, 2121, 2625, 2666, 2677, 2846, 2892, 2961, 4092, 4907, 5394, 5415, 5664, 7132, 7367, 7368, 7717, 7964, 8400, 10243, 6175, 9507, 4636, 6293, 3014, 6624, 9806, 10289, 10554, 11278, 11391, 12104, 12622, 12894, 13143, 9935, 10036, 10196, 10450, 11283, 11719, 11769, 12237, 10246, 10605, 2462, 9497, 1889, 2131, 2443, 3026, 4127, 4252, 4673, 5538, 5893, 6608, 8034, 8902, 8959, 9644, 9707, 10045, 10162, 10335, 10336, 10337, 10373, 10540, 10570, 11107, 11110, 11112, 11124, 11143, 11175, 11298, 11336, 12053, 12203, 12590, 16984, 19515, 19580, 23822, 2163, 3634, 7620, 10166, 11056, 11319, 11589, 1541, 1652, 1676, 1677, 1746, 2154, 2237, 2275, 2311, 2623, 2785, 3454, 3652, 3822, 4014, 4691, 4720, 4950, 5161, 7785, 8866, 8926, 8928, 8937, 8958, 8986, 9759, 9915, 10101, 10230, 10244, 10302, 10311, 10374, 10523, 10602, 11021, 11078, 11103, 11253, 11726, 11988, 12686, 12752, 12757, 13400, 13845, 14116, 14660, 14713, 14756, 1716, 2660, 7191, 7192, 1743, 1636, 1900, 9317, 10651, 1741, 13904, 3096, 2352, 2824, 4091, 2715, 6080, 6082, 2732, 3801, 3908, 4545, 7121, 10284, 13791, 10631, 4921, 6751, 9429, 9743, 11577, 17331, 6073, 9858, 10711, 11118, 6525, 10267, 9034, 11252, 11268, 8033, 8868, 10159, 10214, 9027, 9785, 9033, 9076, 9299, 14501, 14508, 14562, 21733, 10282, 9909, 11178, 11738, 10024, 12667, 11262, 11343, 11978, 11983, 11992, 11826, 11061, 10227, 10428, 11077, 11131, 11137, 11280, 11281, 11518, 11551, 11807, 11812, 11947, 12039, 14158, 14729, 14943, 15641, 16273, 16349, 18560, 19269, 19286, 21547, 10343, 14852, 14901, 15352, 15387, 10612, 10638, 10986, 10994, 20181, 11002, 11127, 11128, 11183, 12166, 11342, 11494, 11955, 11673, 11707, 11711, 12190, 18839, 13802, 14595, 12227, 15912, 14007, 13093, 13096, 12981, 13102, 13160, 13194, 13196, 13227, 13242, 13267, 13278, 13281, 13298, 14168, 15161, 23143, 14058, 14766, 13748, 13839, 15603, 14241, 14179, 14239, 14246, 14240, 14255, 14488, 14487, 14245, 14785, 15160, 14703, 14995, 16571, 15172, 15179, 15424, 15713, 15732, 16141, 16284, 16334, 16382, 17387, 17498, 17499, 18498, 16960, 19689, 17815, 19394, 19464, 19650, 19955, 19476, 19477, 23203]
Aha. Peut être ça:
Tag.where(name: 'balloon-mapping').length => 4
Tag.where(name: 'balloon-mapping').collect(&:tid) => [10, 3205, 3591, 4032]
Oui, c'est l'écart :
irb(main):045:0> NodeTag.joins(:node).where(tid: [10, 3205, 3591, 4032]).where('node.status = 1 AND node.type = "note"').count
=> 499
irb(main):046:0> Node.where(status: 1, type: 'note').includes(:tag).references(:term_data).where('term_data.name = ?', 'balloon-mapping').count
=> 499
irb(main):050:0> Tag.where(name: 'balloon-mapping').collect(&:count)
=> [574, 1, 1, 1]
Cependant, notamment pas pour les bugs method
ou project
dans #7334
irb(main):047:0> Tag.where(name: 'method').collect(&:tid)
=> [14474]
irb(main):048:0> Tag.where(name: 'project').collect(&:tid)
=> [14751]
OK, j'ai corrigé les balises en double avec :
irb(main):053:0> NodeTag.where(tid: [3205, 3591, 4032]).each do |nt|
irb(main):054:1* nt.tid = 10
irb(main):055:1> nt.save
irb(main):056:1> end
Cependant, je parie qu'il y en a plus dans la base de données. Nous voudrons peut-être faire un projet plus important pour les consolider.
Mise à jour : oui, il y a 28 autres instances :
irb(main):063:0> Tag.count
=> 18532
irb(main):065:0> Tag.all.collect(&:name).uniq.count
=> 18504
irb(main):069:0> (Tag.all - Tag.all.group(:name)).collect(&:name)
=> ["fold-up", "gulf-coast", "kite-mapping", "gulf-coast", "brooklyn", "new-york-city", "balloon-mapping", "spectrometer", "farmhack", "white-balance", "fresh-kills", "balloon-mapping", "balloon-mapping", "kite-mapping", "newsletter", "newsletter", "passenger-pigeon", "jamaica-bay", "mobile-spectrometer", "infragram-sandbox", "mailing-lists", "diy-kite", "water-sensing", "carbon-arc", "diy-kite", "diy-kite", "workplace", "emergencies"]
Ma recommandation est maintenant :
Nous l'avons beaucoup réduit, et il comporte deux parties.
question:_____
balises de format /tag/____
, mais si elles n'ont pas leur propre balise de base, ne sont pas comptées dans les fiches thématiques. Exemple : 8 posts ont question:balloon-mapping
mais pas balloon-mapping
, ils font donc passer notre décompte de 8.Mon point de vue sur (2) est que nous devrions l'écrire et en être conscient, mais pas le résoudre (je ne peux pas penser à une solution propre de toute façon).
Et, même après toutes ces recherches, j'ai toujours un écart de 1 pour balloon-mapping
. Mais je pense que nous sommes si proches que nous devrions essentiellement être d'accord avec cela, car c'est l'un des plus gros tags et il est peu probable que ce problème affecte les autres. Intéressé d'entendre le point de vue des autres également !
Commentaire le plus utile
Hey @ebarry, je pense que c'est un problème plus grave en fait :sweat_smile: j'avais fait des modifications pour cela ici https://github.com/publiclab/plots2/pull/7609 mais j'ai dû tout gâcher et calculer le mauvais compte que j'ai pense :déçu: Boucle dans j'aurai peut-être besoin d'aide pour résoudre ce problème :sweat_smile: