Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Beim Einrichten des Such-Addons SearchBox auf Heroku ist ein Fehler beim Starten der Indizierung über die Konsole aufgetreten.
Lade Produktionsumgebung (Rails 7.0.4.3) irb(main):001:0> Document.__elasticsearch__.create_index! force: true Der Client kann nicht überprüfen, ob der Server Elasticsearch ist. Einige Funktionen sind möglicherweise nicht kompatibel, wenn der Server ein nicht unterstütztes Produkt ausführt. /app/vendor/bundle/ruby/3.2.0/gems/elasticsearch-8.17.1/lib/elasticsearch.rb:103:in `verify_elasticsearch’:ssupport this unknown product. (Elasticsearch::UnsupportedProductError)
Installiert waren die letzten Versionen (8):
gem 'elasticsearch-model' gem 'elasticsearch-rails'
Die offizielle Dokumentation sagt:
Stellen Sie sicher, dass Sie die Client-Version 7 verwenden, wenn Sie den Fehler erhalten, dass der Client festgestellt hat, dass der Server keine unterstützte Distribution von Elasticsearch ist, während Sie sich mit Ihrem Endpunkt verbinden.
Aber es wird nicht möglich sein, die Versionen elasticsearch-model und elasticsearch-rails auf 7 zu sperren. Sie hängen von elasticsearch 8 oder 7.17 ab (was für uns ebenfalls nicht geeignet ist)
irb(main):001:0> Topic.__elasticsearch__.create_index! force: true /app/vendor/bundle/ruby/3.2.0/gems/elasticsearch-7.17.11/lib/elasticsearch.rb:86:in `verify_with_version_or_header': Der Client hat festgestellt, dass der Server keine unterstützte Distribution von Elasticsearch ist. (Elasticsearch::UnsupportedProductError)
Der beste Weg ist also, elasticsearch zur Gemfile hinzuzufügen und es auf die benötigte Version 7 zu sperren.
gem 'elasticsearch', '7.0.0' gem 'elasticsearch-model', '7.0.0' gem 'elasticsearch-rails', '7.0.0'
Es ist jedoch besser, alternative Addons auf Heroku zu betrachten, wie Bonsai. Diese verwenden die neuesten Versionen der Bibliotheken mit den erforderlichen Patches. Sicherheit geht vor.
Dieser Beitrag hat noch keine Ergänzungen vom Autor.