2016-08-04 11 views
1

Wir entschieden uns, Suchmaschine in unser Produkt aufzunehmen. Und vergleicht ElasticSearch und Solr. Als wir anfingen mit Elastic 2.3.3 zu arbeiten. Wir standen vor dem Problem der langsamen Indizierung. Wir füttern elastisch mit Logstash, und die Indexierung der Tabelle mit 4000000 Aufzeichnungen dauerte mehr als 8 Stunden. Die physische Größe der Tabelle ist in der Nähe von 40 GB. Wir benutzen HDD ... Ja, es ist schade. Aber auf dem gleichen PC haben wir Solr getestet und die gleiche Operation hat 3 Stunden gedauert. Vielleicht haben wir einen Fehler in der Konfiguration der elastischen gemacht? Und ein anderer Moment Index Größe der elastischen war mehr als zweimal größer als die Tabellengröße, und solr Index war nur 8% der DB-Größe. Wenn wir den Logstash verwenden, um Daten in Datei auszugeben, macht es sehr schnell.Unglaublich langsam Indexierung in ElasticSearch

Hier unsere Konfiguration des jdbc-Modul des logstash für elastische:

input { 
    jdbc { 
     jdbc_driver_library => "F:\elasticsearch-2.3.3\lib\sqljdbc_4.0\enu\sqljdbc4.jar" 
     jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver" 
     jdbc_connection_string => "jdbc:sqlserver://s_tkachenko\mssql2014:49172;databaseName=work" 
     jdbc_user => "sa" 
     jdbc_password => "__masked_password__" 
     statement => "SELECT id, name FROM Contact"      
     } 
     } 

Wir setzen nur 1 Scherbe und keine Repliken auf.

Sehr geehrte Community, vielleicht haben Sie irgendwelche Ratschläge, weil die Unterstützung von elastischen wird uns nur helfen, nachdem wir ein Abonnement kaufen. Aber ich kaufe ein Abonnement von Produkten, die überhaupt nicht gut funktionieren, ich denke nicht, dass es eine großartige Idee ist. Vielen Dank für Ihre Aufmerksamkeit, warten auf Ihre Gedanken.

+0

Wahrscheinlich möchten Sie diese Frage in [Superuser] (https://superuser.com) stellen, da dies keine Programmierfrage ist. Bitten Sie einen Moderator, Ihre Frage dorthin zu stellen. – pah

Antwort

4

In der Zwischenzeit können Sie Nehmen Sie auch Änderungen an logstash vor:

  • Angeben der Anzahl der Worker mit: -w {WORKER_COUNT}. CPU-Anzahl * 2 ist am besten in meinen Experimenten.
  • Puffergröße angeben mit: -u {BUFFER_SIZE}. 512 hat am besten für mich funktioniert.

Sie können auch Ausgangs Arbeiter Zahl und bündig beffer für Elasticsearch Ausgabe-Plugin angeben:

output { 
    elasticsearch { 
     # elasticsearch hosts 
     hosts => ["127.0.0.1"] 
     # bulk message size 
     flush_size => 512 
     # output worker cpu core * 2 
     workers => 8 
    } 
} 

Hoffnung dieser Hilfe etwas.

Verwandte Themen