Projektvorstellung
- NewCodes ist ein Curated-Service für technische Unternehmensblogs
- Spring Boot + PostgreSQL-Architektur
- Implementierung einer Suchbegriff-Autovervollständigung: termbasierte Empfehlungen, Suche mit Zerlegung in Jamo, Initialkonsonanten-Suche, Empfehlungen für Unternehmensseiten
Entdeckung des Performance-Problems
- In der Tabelle
Termhatten sich 110.000 Datensätze angesammelt - Die API-Antwortzeit stieg auf über 1000 ms
- Ziel: Antwort innerhalb von 100 ms
1. Versuch: Indizes hinzufügen (1000 ms → 700 ms)
- Erstellung eines Optimierungsindex für LIKE-Präfixsuchen mit
varchar_pattern_ops - Indexerstellung mit der Option
CONCURRENTLYohne Service-Unterbrechung - Jeweils Indizes auf die Spalten term, decomposed_term und chosung angewendet
2. Versuch: LOWER-Funktionsindex (700 ms → 110 ms)
- Problem eines Full Scans durch die Verwendung der Funktion
LOWER()erkannt - Erstellung eines funktionsbasierten Indexes (Functional Index)
- Neuaufbau des Indexes in der Form
LOWER(Spaltenname) varchar_pattern_ops
3. Versuch: JOIN → EXISTS (110 ms → 100 ms)
- INNER JOIN zwischen Corporation und Article war ein Performance-Flaschenhals
- Wechsel zu einer EXISTS-Subquery zur Reduzierung des Scan-Bereichs
- Optimierung darauf, nur die „Existenz von Daten“ zu prüfen
4. Versuch: Denormalisierung & Covering Index (100 ms → 90 ms)
- Hinzufügen der Spalte
total_frequency, um Aggregationsoperationen zu entfernen - Ersetzung von GROUP BY- und SUM-Operationen durch vorab berechnete Werte
- Reduzierung der I/O-Anzahl durch einen Covering Index
- Einbeziehung von term und total_frequency in den Index mit der
INCLUDE-Klausel
5. Versuch: JDBC Template (90 ms → 80 ms)
- Entfernung des JPA/Hibernate-Overheads
- Direkte Ausführung von Queries mit JDBC Template
- Bei einfachen Leseabfragen ist das Überspringen der ORM-Schicht effektiv
Lösung des Problems mit Nginx Rate Limiting
- Ursprüngliche Einstellung: Begrenzung auf 2 Anfragen pro Sekunde, burst 10
- Fehlgeschlagene Anfragen durch 100-ms-Debouncing
- Verbesserung: Änderung auf 10 Anfragen pro Sekunde, burst 20
- Änderung des Statuscodes von 444 → 429
Verkleinerung der Antwortdatengröße
- Entfernen von JSON-Feldnamen, Umstellung auf arraybasierte Antworten
- Kennzeichnung des Typs per Zahl (0: Corporation, 1: Theme, 2: Term)
- Reduzierung der Netzwerkübertragungszeit
Parallele Verarbeitung mit CompletableFuture
- Gleichzeitige, voneinander unabhängige Ausführung der Abfragen für Corporation, Theme und Term
- Im Vergleich zur sequenziellen Ausführung fällt nur die maximale Antwortzeit an
- Hinzufügen von ExecutorService und Exception-Handling
Endergebnis
- Anfangs 1000 ms → final 80 ms (Entwicklungsserver), 40 ms (Produktivserver)
- Performance-Verbesserung von rund 90 % oder mehr
Wichtige Erkenntnisse
- Bedeutung einer klaren Problemdefinition und Richtungsfestlegung
- Balance zwischen dem Einsatz von KI und der Prüfung durch Entwickler
- Notwendigkeit von Design aus Sicht der Gesamtarchitektur
- Auswahl von Indextypen: einfache/zusammengesetzte/Covering Indizes
- Vorsicht vor der Deaktivierung von Indizes bei Funktionsverwendung
- Verständnis der internen Funktionsweise von JPA
- Analyse von Query-Ausführungsplänen mit EXPLAIN
Zukünftige Verbesserungsrichtungen
- Einsatz der Trie-Datenstruktur
- Caching häufig gesuchter Begriffe
- Nutzung eines CDN (bei globalem Service)
27 Kommentare
Ich bin der Betreiber.
Derzeit zeigt sich, dass die Diskussion in den Kommentaren über den technischen Inhalt des Beitrags hinaus in verschiedene, miteinander verflochtene Aspekte abgleitet und sich zunehmend aufheizt.
Technische Diskussionen und Feedback sind jederzeit willkommen.
Meinungen können unterschiedlich sein, aber wir bitten darum, beim Verfassen von Kommentaren grundlegende Höflichkeit gegenüber anderen zu wahren und die Diskussion auf Logik zu stützen. Außerdem bitten wir darum, nicht Einzelpersonen oder Lebensläufe in den Mittelpunkt zu stellen, sondern den Inhalt des aktuellen Beitrags selbst.
Bitte sehen Sie sich die Kommentar-Richtlinien in der Nutzungsanleitung der Website noch einmal an.
Zur Information: Bei gemeldeten Beiträgen werden bereits Aufzeichnungen geführt und systemseitige Maßnahmen ergriffen; die entsprechenden Moderationsrichtlinien und Systeme werden wir kontinuierlich weiter verbessern.
Wenn Sie außerdem Anmerkungen oder Feedback zum Betrieb haben, können Sie sich jederzeit gerne per E-Mail an uns wenden.
Ja, verstanden.
Ich finde die Stimmung in den Kommentaren etwas merkwürdig. Wurden Titel oder Inhalt vielleicht im Vergleich zum ersten Einstellen geändert? Ich finde es an sich nicht ungewöhnlich, dass ein Beitrag in diesem Umfang veröffentlicht wird.
Es gibt auch Meinungen wie „So einen Artikel würde man wohl nicht in einem technischen Unternehmensblog schreiben.“; allerdings ist es in technischen Unternehmensblogs durchaus üblich, Ziel-Performance zu definieren und dann wiederholt Verbesserungen vorzunehmen, um diese zu erreichen.
Zum Beispiel fällt mir ein Artikel ein, den ich früher einmal gesehen habe:
Ich stimme dem zu, was Sie gesagt haben.
Allerdings denke ich, dass es in der aktuellen Situation um Kritik an der Haltung des missbräuchlich handelnden Nutzers geht. Die Qualität des Beitrags zu bewerten, scheint mir am eigentlichen Punkt vorbeizugehen.
Die unfreundlichen Reaktionen dürften wohl auf den Hintergrund zurückzuführen sein, dass der Autor bereits in der Vergangenheit durch Missbrauch aufgefallen ist. Was den Inhalt betrifft, halte ich das für eine unnötige Randbemerkung.
Genau dieser Punkt ist ja das Fragliche.
Wenn stattdessen alle etwa mit „Diese Person missbraucht das System!“ reagiert hätten, hätte ich so einen Kommentar wohl nicht geschrieben. Die meisten Kommentare befassten sich jedoch mit dem Niveau des ursprünglichen Beitrags, und genau das wirkt seltsam. Wenn tatsächlich Missbrauch das Problem gewesen wäre, wären Bemerkungen über das Niveau des Textes dann nicht völlig überflüssige Zusätze?
Ich stimme zu.
Wenn man sich sogar den Satz „Seit Mai 2025 habe ich allein beim Militär angefangen, das zu bauen!“ ansieht, merkt man, dass es sich nicht einmal um einen Unternehmensblog handelt ...
Natürlich lässt sich schwer bestreiten, dass der geteilte Inhalt „Arbeit ist, die man selbstverständlich machen sollte“,
und es stimmt auch, dass es „weder eine Differenzierungsgeschichte noch mehr als Inhalte auf dem Niveau eigener Fingerübungen“ sind,
Aber war GeekNews denn ein Ort mit der Stimmung, dass man so etwas nicht teilen sollte?
Sollte man Erfahrungen nicht teilen dürfen, nur weil es Dinge sind, die man selbstverständlich tun sollte?
Darf man Erfahrungen ohne Alleinstellungsmerkmal nicht teilen?
Darf man Erfahrungen auf dem Niveau von Fingerübungen nicht teilen?
So könnte es durchaus gewirkt haben. Ich habe den Kommentar aus zwei Gründen wie unten geschrieben. Erstens wurde der zuerst gepostete Show-GN-Beitrag wegen Missbrauchs geflaggt. Einen Tag später hat der Autor seinen eigenen Velog-Beitrag zusammengefasst und erneut gepostet, aber ist der Inhalt des Beitrags selbst tatsächlich etwas, das hier substanziell gepostet werden sollte? Wenn man fragt, ob die eigenen Überlegungen und der eigene Aufwand des Autors sichtbar wurden: Wie auch andere angemerkt haben, ist Suche ein Bereich, in dem die Technik allgemein schon bis zu einem gewissen Grad etabliert ist, und ich habe den Kommentar hinterlassen, weil der Bloginhalt selbst für mich weniger ein technischer Beitrag war, sondern eher indirekt als eine Verlängerung der Werbung für den eigenen Service wirkte.
Es scheint vor allem daran zu liegen, dass man sich durch das Abuse-Flag unbeliebt gemacht hat.
Dass der Bloginhalt selbst letztlich auch eine Verlängerung der Eigenwerbung für den eigenen Service ist, gilt schließlich genauso für die Tech-Blogs anderer Unternehmen; ihn allein deshalb auszuschließen, halte ich daher für einen ziemlich heiklen Maßstab.
Und auch bei der Frage, ob in diesem Beitrag die eigenen Überlegungen und Anstrengungen des Autors erkennbar waren, würde ich sagen: Nachdem sich die Hypothese, dass ein Index die Performance verbessern würde, als falsch erwiesen hatte, den Ausführungsplan zu prüfen, die Business-Logik zu berücksichtigen und durch wiederholte Anpassungen an Query und Schema die Performance schrittweise bis zum Zielwert zu verbessern, ist doch durchaus ein ausreichendes Maß an Überlegung und Einsatz.
Ich habe auch den Blog besucht und den Originaltext gelesen. Ich finde, zwischen dem Titel und dem tatsächlichen Inhalt besteht eine gewisse Diskrepanz. Die implementierten Funktionen und die Richtung der Verbesserungen sind bereits in mehreren bestehenden Open-Source-Projekten umgesetzt und eingeflossen, und Ihre eigentliche Arbeit bestand darin, die zuvor in Ihrem eigenen Service zunächst schlicht implementierte Suche weiterzuentwickeln. Wenn man nur den Titel liest, wirkt es jedoch so, als hätten Sie den Algorithmus grundlegend verbessert. Auch Ihr vorheriger Beitrag wurde bereits als Werbung markiert, daher denke ich, dass Sie sich beim Verfassen vielleicht etwas mehr Gedanken machen sollten.
Falls das so bei Ihnen angekommen ist, tut mir das leid. Ich denke, dass jede Person je nach Titel andere Erwartungen an den Inhalt hat. Dennoch ist es richtig, den Titel so klar wie möglich zu formulieren, damit die erwarteten Inhalte möglichst gut übereinstimmen. Darauf werde ich künftig achten.
Außerdem würde ich Sie bitten, diesen Beitrag unabhängig vom vorherigen zu betrachten. Beim vorherigen Beitrag wurde ich markiert, weil ich mit zwei ungenutzten Accounts versucht habe, Upvotes zu geben. Das war eindeutig mein Fehler, und ich möchte klarstellen, dass es kein Problem mit dem Beitrag selbst war.
Ich frage mich, ob Sie in Erwägung gezogen haben, statt eines
lower()-Index einen GIN-Index zu verwenden. Da Sie mitJdbcTemplateohnehin Raw SQL eingesetzt haben: Wie wäre es bei der Gelegenheit mit FTS?Auch beim asynchronen Ansatz mit
CompletableFuture.supplyAsync()wird, sofern kein separatesExecutorServiceangegeben wird, dercommonPooldesForkJoinPoolverwendet. Wenn die Zahl gleichzeitiger Zugriffe so stark steigt, dass dieser statt des Request-Threads genutztecommonPoolausgelastet ist (bis etwa CPU-Kerne minus 1), könnte das unter Umständen nicht mehr bewältigt werden.Diesen Punkt ließe sich sauber lösen, indem man auf einen reaktiven Ansatz umstellt oder die JVM-Version anhebt und virtuelle Threads einführt.
Hallo! Zunächst einmal vielen Dank für Ihren Feedback-Kommentar.
Wir sind zu dem Schluss gekommen, dass ein GIN-Index in diesem Fall nicht erforderlich ist. In der aktuellen API für Autovervollständigungs-Empfehlungen bei Suchbegriffen wird nur der
termselbst benötigt. Zu welchenarticlen diesertermgehört, ist dabei nicht relevant.Im Gegensatz dazu verwenden wir in der Such-API einen dem GIN-Index ähnlichen Index. Dafür nutzen wir paradeDB, eine Extension für Postgres, und setzen einen BM25-Index ein.
Im Beitrag wird das nicht ausführlich beschrieben, aber aktuell verwenden wir einen separat konfigurierten
ExecutorService. Wie Sie erwähnt haben, werden wir künftig jedoch auch einen reaktiven Ansatz oder virtuelle Threads in Betracht ziehen!!Danke, sehr interessant. Zuerst dachte ich, es wäre einfach nur ein Beitrag darüber, dass ein Index gesetzt wurde? Aber es ist schön zu sehen, dass Sie sich nicht darauf beschränkt, sondern verschiedene Methoden ausprobiert und geteilt haben. Künftig könnte man, wie von Ihnen erwähnt, auch ein Trie verwenden, oder die zuletzt besonders häufig gesuchten Trend-Begriffe stärker gewichten, um das weiter zu verbessern!
Eine Sache, die mich interessiert: Sie suchen sowohl
termals auchdecomposed termmit einer OR-Bedingung ab, aber dadecomposed termdoch gewissermaßen die Obermenge ist, müsste es nicht reichen, nur dieses Feld abzufragen? Selbst wenn die Query „neng“ wäre, würde sie ja zu „nyeong“ zerlegt und damit meiner Meinung nach auch nach „Naver“ suchen. Gleiches müsste doch auch gelten, wenn der eigentlicheterm„neng“ ist.Wie Sie erwähnt haben, reicht es aus, nur mit dem decomposed term zu suchen. Sobald das so ist, war
termals Bedingung eigentlich überflüssig, aber ich glaube, ich habe das nicht berücksichtigt. Dank Ihres Hinweises habe ich es korrigiert. Vielen Dank!Im Zusammenhang mit diesem und meinem vorherigen Beitrag möchte ich mich entschuldigen.
Dass ich mit zwei ungenutzten Accounts Upvotes vergeben habe, war mein Fehler und eine törichte Handlung.
Ich habe viel Zeit und Mühe in dieses Projekt gesteckt und wollte, dass es mehr Aufmerksamkeit bekommt, weshalb ich mich falsch verhalten habe.
Aber selbst wenn es diesen Grund gab, rechtfertigt das natürlich keinen Regelverstoß.
Wegen der von mir leichtfertig abgegebenen Upvotes musste vermutlich der Beitrag von jemand anderem im Ranking sinken, und ich habe damit wohl die Ordnung der Seite gestört.
Außerdem konnte es durchaus missverständlich wirken, dass ich direkt am Tag nach der Markierung einen weiteren neuen Beitrag gepostet habe.
Offen gesagt dachte ich, da es keine gesonderte Nutzungssperre gab, dass es vielleicht in Ordnung sei, sofort wieder zu posten. Das war kurzsichtig von mir.
Rückblickend hätte ich mich unabhängig davon, ob es eine Sanktion gibt oder nicht, zurückhalten müssen.
Wenn ich die Sache aus der entgegengesetzten Perspektive betrachte, hätte auch ich es nicht gut gefunden, wenn jemand in einem Raum, den ich schätze, dasselbe getan hätte.
Seit ich mit der Entwicklung angefangen habe, habe ich immer geglaubt, dass "Teilen" grundsätzlich gut ist, und entsprechend gehandelt.
Durch diesen Vorfall habe ich jedoch verstanden, dass es eigene Orte und eigene Zeitpunkte dafür gibt, etwas zu teilen.
Außerdem habe ich gemerkt, dass ich, wenn ich neu in einen Raum komme, der anderen am Herzen liegt, zuerst möglichst großen Respekt gegenüber den anderen zeigen sollte.
Deshalb hätte ich zunächst die Nutzungsregeln lesen, mir auch die Atmosphäre der Seite anschauen und nichts tun dürfen, was dagegen verstößt.
Ich erkenne meinen Fehler an und möchte mich zumindest auf diese Weise erklären.
Beim nächsten Mal werde ich mich reifer und verantwortungsvoller verhalten.
:+1:
Ich habe ein wenig das Gefühl, dass das nicht wirklich der Inhalt ist, den Leute sehen wollen, die zu GeekNews kommen, oder?
Ich verstehe wirklich nicht, was daran so großartig sein soll.
Es geht weder um 1 Million noch 10 Millionen Datensätze; schon im Titel steht ausdrücklich, dass es nur etwas mehr als 100.000 sind. Ist es da nicht eher seltsam, überhaupt eine spektakuläre Optimierung zu erwarten, statt erst einmal die Grundlagen sauber umzusetzen? Ich frage mich ernsthaft, was für etwas Großartiges man da eigentlich erwartet hat.
Ich weiß nicht so recht, ob ein Artikel, der einfach Schritt für Schritt die Grundlagen sauber angeht, nachdem die DB zuvor nicht ordentlich optimiert war, deshalb gleich als bloßer Ragebait behandelt werden sollte. Meiner Meinung nach ist so eine ausgrenzende Stimmung nach dem Motto „Wenn es nicht das absolute Nonplusultra ist, gehört es gar nicht erst hierher“ schädlich.
Menschen sehen nur so viel, wie sie wissen.
Um das leichter verständlich zu machen, denke ich gerade an das Beispiel, ein Forum zu bauen.
Eines der Projekte, das Einsteiger-Entwicklern oft als erstes Portfolio empfohlen wurde, war der Bau eines Forums.
Oberflächlich betrachtet ist das einfach.
Man stellt einen Beitrag ein, er erscheint in der Liste, und damit ist es erledigt. Wenn man es wirklich ganz simpel macht, braucht man vielleicht nicht einmal ein Backend-DB.
Aber Menschen sehen nur so viel, wie sie wissen.
Wenn man ein Forum ernsthaft baut, fängt es bei der DB an und geht weiter über Kommentarfunktion, Login und in der nächsten Ausbaustufe OAuth-Authentifizierung oder JWT; selbst bei einer simplen Schreibfunktion kommen Bild- und Videoanhänge, Unterstützung für Textformatierung und Sicherheitsthemen von XSS an aufwärts hinzu.
Selbst bei demselben Text kann das Bild, das sich der Leser macht, je nach Vorwissen stark unterschiedlich ausfallen.
Ich verstehe, welche Art von Autovervollständigung kunggom sich beim Lesen des Titels vorgestellt hat.
Aber jeder Leser hat ein anderes Leben gelebt, und am Ende werden sich die Funktionen, die die Leser sich vorgestellt haben, stark voneinander unterscheiden.
Ich verstehe auch, mit welcher Absicht Sie den Kommentar geschrieben haben.
Ich stimme dieser Meinung ebenfalls zu, aber ich gehe davon aus, dass Ihnen bewusst ist, dass sie auf die Situation der Person, die den Artikel geschrieben hat, nicht wirklich passt.
Könnten Sie den Teil „eine Aussage, die auf die Situation der Person, die den Beitrag geschrieben hat, nicht wirklich zutrifft“ vielleicht noch etwas näher erläutern?
Laut dem Originalbeitrag wird ausdrücklich erwähnt, dass es sich bei dem betreffenden Projekt um „ein persönliches Projekt handelt und nicht um einen Service mit enorm viel Traffic oder dem Anspruch, Gewinn zu erwirtschaften“. Wenn also irgendeine groß angelegte Optimierung eingebaut würde, könnte man annehmen, dass dies eher aus persönlicher Neugier geschieht und nicht aus praktischen Gründen. Deshalb finde ich es nicht ungewöhnlich, wenn in diesem Ausmaß kein technischer Aufwand betrieben wird; was ich nicht verstehe, ist vielmehr, warum ausgerechnet einige Reaktionen so stark negativ ausfallen. Auch die im Titel zitierte Zahl widerspricht dem Inhalt des Haupttextes ja nicht.
Ich halte kunggom nicht für einen Entwickler ohne ausreichendes Hintergrundwissen, der nicht einmal die von mir verwendete Analogie mit einem Forum verstehen könnte.
Ich denke, der Unterschied in unseren Ansichten rührt derzeit schon von einer unterschiedlichen Wahrnehmung gegenüber missbräuchlichen Nutzern her, deshalb sage ich dazu ein letztes Mal etwas.
Was ich erwartet hatte, war semantische Suche.
Semantische Suche ist im aktuellen AI-Boom keineswegs ein völlig unrealistisches Thema, und ich gehe davon aus, dass Sie wissen, dass selbst Einzelpersonen das durchaus umsetzen können.
Von vornherein ist es ja nicht so, dass wir beim Anklicken eines Titels bereits den Hintergrund der Person verstehen, die den Beitrag geschrieben hat; ich sage nur, dass es selbst dann, wenn es kein Dienst mit enorm viel Traffic ist oder profitabel sein muss, durchaus umsetzbar ist.
Und ich spreche gerade nur über den Titel.
Ich spreche über das Bild, das ich mir beim Lesen des Titels vorgestellt habe, und dieser Punkt ist für unser Gespräch gerade nicht nötig.
Wie ich gestern gesagt habe: Wäre die Person nicht geflaggt worden, hätte ich dem auch zugestimmt; aber ab dem Zeitpunkt, an dem sie mit ihrem Beitrag die Empfehlungen manipuliert hat, ist diese Diskussion bedeutungslos.
Das haben Sie oben so gesagt.
Wenn jemand trotz Flag weiterhin die Freiheit hat, Beiträge zu schreiben, dann gibt es auch die Freiheit, das zu kritisieren.
Wie Sie selbst gesagt haben: Wenn Sie es für problematisch halten, in den Kommentaren gegenüber einer geflaggten Person etwas strenger zu sein, dann weisen Sie bitte nicht in den Kommentaren darauf hin, sondern machen Sie den Betreibern einen entsprechenden Vorschlag.
Sie meinen also, dass hier wohl Erfahrungen zur Optimierung einer Art von Dienst geteilt werden sollten, der Suchkandidaten empfiehlt, selbst wenn man mithilfe von Embeddings oder Ähnlichem völlig danebenliegende Eingaben macht.
Wenn es so etwas ist, dann hätte man das eher schon bei einem Titel wie „Suchbegriff-Empfehlung“ erwarten müssen; aber ich verstehe, was Sie erwartet hatten.
Ich verstehe die kritische Haltung gegenüber Abusing, aber der letzte Satz verschiebt die Argumentation unterschwellig von technischer Unzulänglichkeit zu einem Problem des Verstoßes gegen Community-Regeln, und das wirkt auf mich etwas enttäuschend, als wäre es ein unbeholfener Versuch nach dem Muster „Ich widerlege dich mit deiner eigenen Logik und Argumentation“.
Wenn Sie stattdessen von Anfang an nur das Abusing kritisiert hätten, wäre das überzeugender gewesen. Wäre das wirklich so gewesen, dann hätte es selbst dann eine feindselige Reaktion auf die jüngste Abusing-Historie des Autors gegeben, wenn der obige Beitrag tatsächlich Inhalte enthalten hätte, von denen Sie behaupten, sie ursprünglich erwartet zu haben, etwa Vektor-Embedding-Optimierung in modernen DBMS, oder selbst wenn ein „bescheidener Titel“ verwendet worden wäre; und gegen diesen Punkt hätte ich keinerlei Einwand. Denn das hat mit dem technischen Inhalt nicht besonders viel zu tun.
Wogegen ich mich wende, ist die Frage, warum sich dieses Muster als Kritik an „technischer Unzulänglichkeit“ äußert. Wenn Abusing ein nicht hinnehmbares Verhalten ist, dann verdient es selbstverständlich Tadel, unabhängig vom Inhalt. Gäbe es dann überhaupt einen Grund, darin noch inhaltliche Kritik einzumischen? Die Kommentare hier tragen jedoch fast alle die Nuance, dass der Inhalt technisch unausgereift sei. Auch Sie, crawler, haben mir gegenüber Vergleiche wie „Ein Schwarzes Brett für Einsteigerentwickler“ verwendet und gesagt: „Man sieht nur so viel, wie man weiß.“ Wenn das so ist, müsste man dann nicht eher vermuten, dass das Abusing in Wahrheit nur ein nachträglich angefügter, zweitrangiger Punkt ist?
Wenn man dem Inhalt Ihres Kommentars folgt, hätten Sie also selbst dann Kritik geübt, wenn der ursprüngliche Beitrag tatsächlich genau die Art von Inhalt gehabt hätte, die Sie erwarten. Oder sollte es etwa so sein, dass man zwar Abusing betreibt, Sie aber in Fällen, in denen Ihnen der Inhalt des Beitrags persönlich gefällt, keine Notwendigkeit sehen, die Freiheit zu „strengem“ Reden auszuüben?
Deshalb frage ich noch einmal: Wenn Sie den ursprünglichen Autor wirklich wegen seines Abusings kritisieren, warum haben Sie dann einen Kommentar geschrieben, der sich überwiegend auf Kritik am Inhalt statt auf das Abusing konzentriert?
Gibt es irgendeine Grundlage für die Aussage, ich hätte „die Redefreiheit anderer behindert“? Das ist für mich etwas schwer nachzuvollziehen. Es ist ja nicht so, dass ich hier irgendwelche Moderationsrechte hätte und andere daran hindern könnte, Beiträge oder Kommentare zu schreiben. Tatsächlich haben Sie doch auch ohne Weiteres einen so langen Kommentar verfasst.
Wenn bereits das bloße Posten eines Kommentars, der der Meinung anderer widerspricht, als Behinderung der Redefreiheit anderer gilt, dann müsste man folgerichtig auch sagen, dass crawler gerade jetzt meine Redefreiheit verletzt. Wenn nicht, wäre das logisch betrachtet nicht ziemlich widersprüchlich?
Und wie auch crawler selbst eingeräumt hat, war am Ende die Frage, ob es sich um Abuse handelt, für die Beurteilung überhaupt nicht wichtig.
Steht das nicht im Widerspruch zu der Aussage: „Wie ich gestern schon sagte: Wenn es nicht geflaggt worden wäre, hätte ich dem auch zugestimmt, aber ab dem Zeitpunkt, an dem die Empfehlung des Beitrags manipuliert wurde, ist diese Diskussion bedeutungslos.“?
Im Moment scheint sich der Streitpunkt und die Behauptung ständig zu verändern; ich würde Sie bitten, sich auf eines davon festzulegen.
Ich halte es für womöglich noch schädlicher für das Wachstum und den Fortbestand der Community als Vote-Manipulation, wenn Beiträge, die thematisch ausreichend zur Community passen und kein AI Slop sind, kollektiv mit Aussagen wie „Dieser Beitrag ist unter dem Niveau, das zu unserer Community passt“ niedergemacht werden (oder zumindest dieser Eindruck entsteht). Denn dadurch kann das Außenbild der Community exklusiv und abweisend wirken, was den Zustrom potenzieller neuer Nutzer erheblich behindern kann.
Natürlich heißt das nicht, dass man keine Kritik üben soll. Aber zumindest diese Stimmung wirkt auf mich etwas seltsam. Gemeinsam war den Reaktionen vor allem die Enttäuschung darüber, dass der Inhalt nicht den eigenen Erwartungen entsprach; konstruktiv wirkende Analysen und Feedback waren hingegen eher selten.
Und wenn man es tatsächlich für problematisch hält, dass jemand, bei dem wirklich Missbrauch festgestellt wurde, schon am nächsten Tag wieder einen Beitrag schreibt, wie wäre es dann, bei dieser Gelegenheit der Moderation offiziell vorzuschlagen, entsprechende Regeln zu ergänzen? Soweit ich weiß, gibt es bereits gewisse Sanktionen, aber offenbar halten manche sie für unzureichend.
Es scheint, als hätten Sie sich – wie bei Yukryongui Sidae oder Web Samguk Mussangjeon – ebenfalls häufig in den Galerien anderer Websites selbst beworben.
Wenn ich sehe, dass Sie Ihre unfertigen Arbeiten als kurzen Testballon präsentieren und das jeweilige Projekt danach leicht wieder fallen lassen, frage ich mich, was daran eigentlich so anders sein soll als bei diesem Beitrag hier … warum legen Sie bei anderen so strenge Maßstäbe an?
Ist es vielleicht so, dass auf DC nur Kinder herumspielen und deshalb alles erlaubt ist, während GeekNews ein Ort ist, der Ihnen am Herzen liegt, sodass Sie es nicht ertragen, wenn jemand anderes ihn „beschmutzt“?
Ich will das gar nicht besonders logisch ausführen, ich sage das nur, weil ich diese Doppelmoral bemerkenswert finde – also ja, Ihre Gegenrede hat sicher recht. Viel Erfolg beim Abusen.
Ich verstehe das eher nicht. Sehen Sie das so, als wäre das gepostet worden, um kollektiv und organisiert Kritik zu üben? Ich finde vielmehr, dass gerade Ihre Behauptung die Meinungen, die einzelne Personen äußern können, eher in ein negatives Licht rückt. Ich hoffe, dass Sie künftig auch Beiträge auf dem Niveau eines Entwicklungsjournals (Ich habe mir ein Ziel gesetzt, um das Zeichnen von Sternen mit
printfzu verbessern, habe es optimiert und dann einefor-Schleife verwendet!) mit derselben Herzlichkeit betrachten werden.Der Titel klingt nach einem optimierten Such-Autocomplete-API-Service, aber der Inhalt ist letztlich nur eine gewöhnliche Optimierung von Datenbankabfragen.
Wenn es kommerziell eingesetzt werden soll, ist das mit Oracle-Optimierung völlig ausreichend machbar, und für Autocomplete gibt es bereits viele bestehende Services. Es gibt auch keine Erklärung zu einem Alleinstellungsmerkmal, der Inhalt wirkt eher wie eine Fingerübung auf Anfängerniveau.
Etwas unangenehm anzusehen