Wenn auf die Sortieroption "Anzahl der Personen" geklickt wird, erscheint vor der Anzahl der Beiträge auf Themenkarten ein winziges "-", was den Anschein erweckt, als gäbe es eine negative Anzahl von Beiträgen. Siehe Screenshot:
Was hast du erwartet, was du nicht gesehen hast?
Ich hatte erwartet, positive ganze Zahlen zu sehen.
https://publiclab.org/tags?sort=followers&order=asc
Dies kann uns helfen, das Problem zu diagnostizieren:
liz
Hat jemand Code-Links zur Hand, die er hier hinzufügen könnte? Danke im Voraus!
Hey @ebarry, ich denke, das ist tatsächlich ein ernsteres Problem :sweat_smile: Ich hatte hier https://github.com/publiclab/plots2/pull/7609 Änderungen vorgenommen, aber ich muss es vermasselt und die falsche Anzahl berechnet haben denke :disappointed: Looping in @jywarren Sorry, brauche vielleicht etwas Hilfe, um das zu beheben :sweat_smile:
Hallo @Tlazypanda, können wir uns andere Stellen ansehen, an denen der Code vom Typ Tag.counter
verwendet wird, und versuchen, darauf zu wechseln?
https://github.com/publiclab/plots2/pull/7609/files#diff -8fe92870a7f027a46eed82a51c5c16bcR118
Die Zählungen sind jedoch sehr gering. Ich frage mich, ob dies ein Problem ist, dass einige Dinge gespammt werden und dies dann die Mathematik ein wenig beeinflusst?
Sehen Sie sich zum Beispiel den Unterschied zwischen diesen Zählungen an:
Wir können suchen, wo die 236-Zählung berechnet wird, und vielleicht darauf umschalten?
Das verwendet also eine vom Controller generierte Instanzvariable:
Ich glaube, hier wird berechnet:
Hey @jywarren , was ich in tag/:id sehen kann, dh die Showpage für Tag ist, dass wir dort nur Forschungsnotizen anzeigen und in Themenkarten versuchen wir, Forschungsnotizen + Fragen anzuzeigen.
Ich denke, was wir tun müssen, ist, dass wir Notizen auf die gleiche Weise abrufen müssen, wie wir es in tag#show tun
Anzahl der Notizen mit dem Tagnamen-Anzahl der angezeigten Notizen in der Themenkarte
wir müssen Notizen auf die gleiche Weise abrufen wie in tag#show
Hallo, genau richtig! Beachten Sie das Konzept einer "Single Source of Truth" hier: https://github.com/publiclab/plots2/issues/6855#issuecomment -578331475
Ich glaube, wir sollten hier die gleichen Berechnungen verwenden: https://github.com/publiclab/plots2/pull/7476 (basierend auf #6855).
@urvashigupta7 vielen Dank
Ich denke auch, dass wir in https://github.com/publiclab/plots2/pull/7476/ keinen Spam herausfiltern. In diesen Zeilen sollten wir also wahrscheinlich .where(status: 1)
hinzufügen:
Dieser Code hängt auch davon ab, der Spam nicht filtert:
Ebenso muss dieser Code auch Spam mit dem gleichen Filter herausfiltern:
Hm. Es scheint, als würden wir Spam aus der Berechnung von @total_posts
filtern, da sie /nach/ diesen Zeilen ausgeführt wird:
Weder Tag.counter
Node.for_tagname_and_type
filtern jedoch. Vielleicht ist das die Unregelmäßigkeit?
Die Zählung hier stimmt immer noch nicht, denke ich. Zum Beispiel listet https://stable.publiclab.org/tags jetzt 692 Beiträge für balloon-mapping
aber hier sind die Statistiken für dieses Tag (in stable):
Ich denke, wir müssen uns auf diesen Fix verlassen: https://github.com/publiclab/plots2/pull/8245
dann können wir das nochmal überprüfen. Für einen Moment wieder geöffnet... Finger
https://github.com/publiclab/plots2/pull/8245 ist jetzt fertig! Und hat Unit-Tests, so schön. Okay, das könnte jetzt klappen...
OK, es sagt 573 posts »
-- hmm
Forschungsnotizen 469
Fragen 37
Wiki-Seiten 77
Personen 346
Ich meine, Notizen plus Wikis = 546...? und Plusfragen ist 583?
Beim Testen des Tags tests
auf stable bin ich misstrauisch, dass es zu Zwischenspeicherungen kommen könnte. Das Hinzufügen dieses Tags zu einer neuen Notiz, https://stable.publiclab.org/notes/aidanswope/05-21-2019/angel-s-point-balloon-map-updated , führte nicht dazu, dass die Registerkarte der Notizen von 7 bis 8, obwohl tag.count
8 zurückgibt, ebenso wie das Ergebnis von tag.run_count
und notieren Sie den Link zu https://github.com/publiclab/plots2/issues/8244
YESSSSS, es ist 5-Minuten-Cache: https://github.com/publiclab/plots2/blob/e97eff7464a544a97f4b38f169f76250600b3148/app/views/tag/show.html.erb#L133
OK, also die Anzahl der Tabs verfolgen:
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
Im Vergleich zur Anzahl der Themenkarten:
NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').where.not(nid: qids).count
=> 467
😭
Diese drei sind der Unterschied: [6129, 7236, 7414]
--
[#
,
,
]
Sehr eigenartig! aus 2 Gründen: 3 Notizen sind nicht identisch mit den 10 fehlenden (wobei wir uns die Fragen noch nicht angesehen haben), UND diese drei scheinen normal zu sein, außer dass eine im Februar 2013 und 2 im Mai 2013 waren:
(Update: siehe unten für doppelte Tagnamen)
Auch interessant:
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
Dies stimmt überein mit:
NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').where(nid: qids).count
vs. 37 wie auf der Registerkarte gezeigt, die berechnet wird mit:
Aha! Der letzte Abschnitt zeigt, dass Posts mit dem Tag question:balloon-mapping
in dieser Zählung enthalten sind, auch wenn sie nicht das Basis-Tag balloon-mapping
!!!
Die folgenden 8 Beiträge scheinen question:balloon-mapping
aber nicht balloon-mapping
:
[13556, 15762, 16426, 18994, 20694, 11301, 12251, 19625]
OK, das bringt uns auf 2 Knoten. Jetzt vergleichen wir einfach manuell:
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. Vielleicht das:
Tag.where(name: 'balloon-mapping').length => 4
Tag.where(name: 'balloon-mapping').collect(&:tid) => [10, 3205, 3591, 4032]
Ja, das ist die Diskrepanz:
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]
Allerdings nicht für die method
oder project
Bugs in #7334
irb(main):047:0> Tag.where(name: 'method').collect(&:tid)
=> [14474]
irb(main):048:0> Tag.where(name: 'project').collect(&:tid)
=> [14751]
OK, ich habe die doppelten Tags behoben mit:
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
Aber ich wette, es gibt mehr in der DB. Vielleicht möchten wir ein größeres Projekt durchführen, um diese zu konsolidieren.
Update: ja, es gibt 28 weitere Instanzen:
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"]
Meine Empfehlung ist jetzt:
Wir haben dies stark eingegrenzt und es besteht aus zwei Teilen.
question:_____
Format-Tags, die auf den /tag/____
Seiten unter der Registerkarte Fragen gezählt werden, aber nicht über ein eigenes Basis-Tag verfügen, werden in den Themenkarten nicht gezählt. Beispiel: 8 Posts haben question:balloon-mapping
aber nicht balloon-mapping
, also werfen sie unsere Zählung um 8.Meine Meinung zu (2) ist, dass wir es aufschreiben und uns dessen bewusst sein sollten, es aber nicht lösen sollten (mir fällt sowieso keine saubere Lösung ein).
Und selbst nach all dem Graben habe ich immer noch eine Diskrepanz von 1 für balloon-mapping
. Aber ich denke, wir sind uns so nahe, dass wir damit im Wesentlichen in Ordnung sein sollten, da es eines der größten Tags ist und dieses Problem wahrscheinlich andere nicht betrifft. Interessiert, auch die Meinung anderer zu hören!
Hilfreichster Kommentar
Hey @ebarry, ich denke, das ist tatsächlich ein ernsteres Problem :sweat_smile: Ich hatte hier https://github.com/publiclab/plots2/pull/7609 Änderungen vorgenommen, aber ich muss es vermasselt und die falsche Anzahl berechnet haben denke :disappointed: Looping in @jywarren Sorry, brauche vielleicht etwas Hilfe, um das zu beheben :sweat_smile: