Mam program klienta, który generuje dokumenty Solr o wartości od 1 do 50 milionów i dodaje je do Solr.
Używam ConcurrentUpdateSolrServer do wysyłania dokumentów od klienta, 1000 dokumentów na żądanie.
Dokumenty są stosunkowo małe (kilka małych pól tekstowych).
Chcę poprawić szybkość indeksowania.
Próbowałem zwiększyć "ramBufferSizeMB" do 1G i "mergeFactor" do 25, ale nie widziałem żadnej zmiany.
Zastanawiam się, czy istnieją inne zalecane ustawienia poprawiające szybkość indeksowania Solr.
Wszelkie linki do odpowiednich materiałów zostaną docenione.Jak skonfigurować Solr w celu poprawy szybkości indeksowania?
Odpowiedz
Wygląda na to, że robisz zbiorczy import danych do Solr, więc nie musisz od razu wyszukiwać żadnych danych.
Po pierwsze, można zwiększyć liczbę dokumentów na żądanie. Ponieważ twoje dokumenty są małe, zwiększyłbym je nawet do 100K dokumentów na żądanie lub więcej i spróbuj.
Po drugie, chcesz zmniejszyć liczbę zdarzeń, które mają miejsce w przypadku indeksowania zbiorczego. W swojej solrconfig.xml szukać:
<!-- AutoCommit
Perform a hard commit automatically under certain conditions.
Instead of enabling autoCommit, consider using "commitWithin"
when adding documents.
http://wiki.apache.org/solr/UpdateXmlMessages
maxDocs - Maximum number of documents to add since the last
commit before automatically triggering a new commit.
maxTime - Maximum amount of time in ms that is allowed to pass
since a document was added before automatically
triggering a new commit.
openSearcher - if false, the commit causes recent index changes
to be flushed to stable storage, but does not cause a new
searcher to be opened to make those changes visible.
-->
<autoCommit>
<maxTime>15000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
Można wyłączyć AUTOCOMMIT całkowicie, a następnie wywołać commit po wszystkie dokumenty zostały wysłane. W przeciwnym razie możesz poprawić numery w następujący sposób:
Domyślna maxTime
to 15 sekund, więc automatyczne zatwierdzanie zdarza się co 15 sekund, jeśli istnieją niezatwierdzone dokumenty, więc możesz ustawić to na coś dużego, powiedzmy 3 godziny (np. 3 * 60 * 60 * 1000). Możesz również dodać <maxDocs>50000000</maxDocs>
, co oznacza, że automatyczne zatwierdzanie ma miejsce tylko po dodaniu 50 milionów dokumentów. Po opublikowaniu wszystkich dokumentów, zatwierdź commit raz lub ręcznie z SolrJ - zatwierdzenie zajmie trochę czasu, ale ogólnie będzie to znacznie szybsze.
Również po zakończeniu importu zbiorczego, zmniejsz maxTime
i maxDocs
, tak aby wszelkie przyrostowe wpisy, które zrobisz Solr, zostaną zatwierdzone znacznie wcześniej. Lub użyj commitWithin
, jak wspomniano w solrconfig.
- 1. android: windowBackground = "@ null" w celu poprawy szybkości aplikacji
- 2. Solr wolno podczas indeksowania
- 3. Poprawy indeksowania wielu wątków z lucene
- 4. alternatywy StringReplace celu poprawy wydajności
- 5. Jak ulepszyć dokument SOLR podczas indeksowania za pomocą/solr/update
- 6. indeksowania Pola SOLR i LowerCaseFilterFactory
- 7. Najlepsze ustawienia PHP.ini w celu poprawy bezpieczeństwa
- 8. Jak skonfigurować serwer Apache Tika z apache Solr 1.4.1
- 9. Jak skonfigurować replikację Solr z wieloma rdzeniami?
- 10. Korzystanie z kontekstu w celu poprawy tagowania części mowy
- 11. SimplePostTool: FATAL: Błąd połączenia w Solr podczas próby indeksowania
- 12. Poprawa szybkości implementacji FFT
- 13. Jak skonfigurować SOLR, aby użytkownicy mogli domyślnie wyszukiwać prefiksy?
- 14. Jak wyłączyć stronę administratora solr
- 15. Zmienność szybkości wstawiania SQL
- 16. Czy można zmienić analizator określony w schemacie w Solr bez ponownego indeksowania z oryginalnego źródła?
- 17. Jak przedłużyć Nutch do indeksowania artykułu
- 18. Firebase: tylko do odczytu i trybie non-realtime aktywowane w celu poprawy wydajności przeglądarce
- 19. Jak ponownie wyświetlić tylko niektóre obiekty w Sunspot Solr
- 20. Jak używać indeksów Solr z Elasticsearch
- 21. Konfiguracja solr solr z szynami w środowisku produkcyjnym
- 22. Używanie ElastiCache z RDS do poprawy wydajności odczytu/zapisu
- 23. Sposoby poprawy wydajności przewijania UIWebView?
- 24. Zwiększenie szybkości skanowania WiFi
- 25. Jak wdrożyć Solr w Sitecore
- 26. Jak zaktualizować dane w Solr
- 27. Jak przywrócić funkcjonalność indeksowania? (Xcode)
- 28. Jak indeksowania std_logic_vector przez wyliczenie
- 29. jak zapobiegać indeksowaniu indeksowania w wyszukiwarkach?
- 30. Nie można stosować z indeksowania [] w celu wyrażenia typu „System.Collections.Generic.ICollection <int> w MVC kontrolera
Może zabraknąć pamięci, jeśli zatwierdzenia zostaną całkowicie wyłączone. Ale ponowne otwarcie wyszukiwarki to dobry pomysł. –
Witam Czy możesz doradzić, jak go skonfigurować, aby nie otwierać ponownie wyszukiwarki? – Krunal
' false openSearcher>' nie otworzy nowego użytkownika po tym, jak nastąpi automatyczne zatwierdzanie. –
arun