Algolia:Initialisierung funktioniert nicht (Rails abgebrochen - weiß nicht, wie man Aufgabe erstellt)

Hallo,

Zuerst einmal ist dies eine Kopie meines Beitrags in Algolia-Discourse. Wie von Discourse-Support mitgeteilt, kann ich ihn jetzt hier posten, daher handelt es sich um eine Kopie-Nachricht.

Ich möchte unser Discourse mit Algolia einrichten, aber es funktioniert nicht wie auf GitHub beschrieben. Ich habe die neueste Version: 3.1.0.beta1.

Um die erste Initialisierung durchzuführen, öffne ich mein Discourse-Docker mit

./launcher enter app

Danach habe ich verschiedene Befehle ausprobiert (bundle exec rails oder nur rails, auch rake), aber alle führen zu:

root@rbx-communtity-service-app:/var/www/discourse# LOAD_PLUGINS=1 rails algolia:initialize
rails aborted!
Don't know how to build task 'algolia:initialize' (See the list of available tasks with `rails --tasks`)
Did you mean?  algolia:reindex

Wenn ich nur algolia:reindex ausführe, erhalte ich Folgendes:

root@rbx-communtity-service-app:/var/www/discourse# LOAD_PLUGINS=1 rake algolia:reindex
Clearing users from Algolia
Pushing users to Algolia
..
Successfully pushed xxx users to Algolia
Clearing tags from Algolia
Pushing tags to Algolia
..
Successfully pushed xxx tags to Algolia
Clearing posts from Algolia
Pushing posts to Algolia
rake aborted!
NoMethodError: undefined method `id' for nil:NilClass
/var/www/discourse/plugins/discourse-algolia/lib/discourse_algolia/post_indexer.rb:66:in `to_object'
/var/www/discourse/plugins/discourse-algolia/lib/discourse_algolia/indexer.rb:23:in `block in process!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:71:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:71:in `block in find_each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:138:in `block in find_in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:245:in `block in in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:229:in `loop'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:229:in `in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:137:in `find_in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:70:in `find_each'
/var/www/discourse/plugins/discourse-algolia/lib/discourse_algolia/indexer.rb:21:in `process!'
/var/www/discourse/plugins/discourse-algolia/lib/tasks/discourse_algolia.rake:36:in `block in algolia_reindex'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:245:in `block in in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:229:in `loop'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/relation/batches.rb:229:in `in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/querying.rb:22:in `in_batches'
/var/www/discourse/plugins/discourse-algolia/lib/tasks/discourse_algolia.rake:33:in `algolia_reindex'
/var/www/discourse/plugins/discourse-algolia/lib/tasks/discourse_algolia.rake:7:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/cli/exec.rb:58:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/cli/exec.rb:58:in `kernel_load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/cli/exec.rb:23:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/cli.rb:491:in `exec'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/cli.rb:34:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/cli.rb:28:in `start'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/exe/bundle:45:in `block in <top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bundler-2.4.1/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => algolia:reindex
(See full trace by running task with --trace)

Irgendeine Idee, was das Problem sein könnte?

Vielen Dank im Voraus!
M.Anderson

Ich habe dies auf meiner Testseite installiert, um sie auszuprobieren, und ich sehe auch etwas Ähnliches. Lassen Sie mich sehen, was ich herausfinden kann. :+1:

2 „Gefällt mir“

Haben Sie zufällig die Website-Einstellung algolia_discourse_username festgelegt?

3 „Gefällt mir“

Es ist auf „System“ eingestellt

1 „Gefällt mir“

algolia:initialize existiert nicht mehr. Siehe FEATURE: Update to latest algolia gem (#33) · discourse/discourse-algolia@9a1f08f · GitHub

Die README.md muss aktualisiert werden.

2 „Gefällt mir“

README aktualisiert :+1:

2 „Gefällt mir“

Das Problem bezüglich des Reindexierens besteht weiterhin. Ich habe ein vollständiges Upgrade von Discourse durchgeführt, einschließlich Algolia. Außerdem konnte ich bisher keine Code-Änderung im Algolia-Plugin finden. Gibt es Pläne, daran zu arbeiten?

Derzeit ist nur die Readme geändert, aber die Funktion funktioniert immer noch nicht wie ursprünglich von mir geschrieben.

Bei Bedarf kann ich Ihnen frische Protokolle von der Konsole zusenden.

Danke,
M. Anderson

Es gab heute früher eine Fehlerbehebung für ein Problem mit der Neuindizierung und den Themenanzahlen:

Könnte dies zufällig auch Ihr Problem gelöst haben?

Leider nein :frowning: Dieser Fix ist bereits in meiner Discourse-Version enthalten. Gleiches Problem wie zuvor.

Pushing posts to Algolia
rake aborted!
NoMethodError: undefined method `id’ for nil:NilClass

id: post.topic.id,
^^
/var/www/discourse/plugins/discourse-algolia/lib/discourse_algolia/post_indexer.rb:66:in to_object' /var/www/discourse/plugins/discourse-algolia/lib/discourse_algolia/indexer.rb:23:in block in process!’
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.1/lib/active_record/relation/batches.rb:71:in each' /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.1/lib/active_record/relation/batches.rb:71:in block in find_each’
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.1/lib/active_record/relation/batches.rb:138:in block in find_in_batches' /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.1/lib/active_record/relation/batches.rb:245:in block in in_batches’
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.1/lib/active_record/relation/batches.rb:229:in loop' /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.1/lib/active_record/relation/batches.rb:229:in in_batches’
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.1/lib/active_record/relation/batches.rb:137:in find_in_batches' /var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.1/lib/active_record/relation/batches.rb:70:in find_each’

1 „Gefällt mir“

Ich hatte überoptimistisch auf eine „magische Lösung“ gehofft :slightly_frowning_face:

Ich habe es auf meiner Testseite noch einmal versucht und bin wieder auf dasselbe Problem gestoßen. Ich konnte jedoch weitere Informationen herausfinden. :partying_face: Anscheinend haben wir beide ein Problem, bei dem wir mindestens einen verwaisten Beitrag haben, dem eine Topic-ID fehlt, was die Rake-Aufgabe durcheinanderbringt. Der Rat ist, diese zu finden und zu löschen, und dann kann die Rake-Neuindizierung reibungslos laufen.

Ich habe dies noch nicht zur Praxis gemacht, um den/die problematischen Beitrag/Beiträge zu finden, daher habe ich noch keine Schritt-für-Schritt-Anleitung, aber ich wollte Sie informieren, falls Sie dies untersuchen möchten, bevor ich dazu komme. :+1:

2 „Gefällt mir“

Ich debugge es gerade.

Haben Sie die Standard-Website-Einstellung algolia_discourse_username geändert? Wenn ja, stellen Sie bitte sicher, dass Sie einen Nicht-Admin-Benutzer verwenden.

4 „Gefällt mir“

Ich habe es noch einmal versucht… :slight_smile: Und ich kann bestätigen, dass das Entfernen von ‘system’ aus der Einstellung algolia discourse username und das Ausführen von rake algolia:reindex mit einem Dummy-Benutzer stattdessen ohne Fehler funktionierte. :+1:

Ich habe den Teil in den Anweisungen leider nicht bemerkt über:

Es wird empfohlen, einen separaten Dummy-Benutzer zu erstellen, der nur Inhalte sehen kann, die Sie als öffentlich betrachten, und diesen Wert auf dessen Benutzernamen zu ändern.

Und habe meine Einstellungen nur gemäß dieser Anweisung abgeglichen:

Sobald alle Einstellungen aktiviert und ausgefüllt sind, sollte die Plugin-Konfiguration wie folgt aussehen:

Persönlich (und ich bin vielleicht voreingenommen :slight_smile:) denke ich, wir könnten diese Anweisungen vielleicht etwas klarer gestalten. :slight_smile: Ich würde einen Abschnitt ‘Erstellen Sie Ihren Algolia Discourse-Benutzer’ als Teil des Konfigurationsflusses befürworten.

3 „Gefällt mir“

Tatsächlich habe ich diese Option im letzten PR entfernt, da sie möglicherweise gefährlich ist. Wenn ein Benutzer mit Administratorzugriff verwendet wird, können eingeschränkte Beiträge in der Suche angezeigt werden.

3 „Gefällt mir“

Das ist eine noch bessere Idee. :slight_smile:

3 „Gefällt mir“

Hallo,
danke, jetzt funktioniert es :slight_smile: Meine drei Indizes sind erstellt und an Algolia gesendet!

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.