Używam Solr do wyszukiwania mojej aplikacji webowej i pomyślałem, że najlepiej będzie użyć DataImportHandler do obsługi synchronizacji z aplikacją przez bazę danych. Podoba mi się elegancja sprawdzania pola last_updated_date
. Dobry towar. Jednak nie wiem, jak obsługiwać usuwanie dokumentów za pomocą tego podejścia. Tak jak ja to widzę, mam dwie możliwości. Mógłbym wysłać wyraźną wiadomość do Solr od klienta, gdy dokument został usunięty, lub mógłbym dodać flagę "usuniętą" i pozostawić obiekt w bazie danych, aby Solr zauważył, że dokument się zmienił i jest teraz "usunięty" . " Mógłbym dodać filtr kwerend, który pomijałby wyniki z usuniętą flagą, ale wydaje się nieskuteczne uwzględnianie wszystkich usuniętych dokumentów w indeksie Lucene. Co robią inni ludzie?Solr DIH - Jak radzić sobie z usuniętymi dokumentami?
16
A
Odpowiedz
20
Są to opcje:
- Zastosowanie DIH special commands $ deleteDocById lub $ deleteDocByQuery (wymaga Solr 1.4+)
- Użyj clean parameter z DIH usunąć cały indeks przed importem.
- Użyj preImportDeleteQuery, aby określić, co będzie wyczyszczone przed importowaniem. (wymaga Solr 1.4+)
- Do zarządzania aktualizowaniem indeksu użyj wyzwalaczy bazy danych zamiast DIH.
- Jeśli korzystasz z jakiejś formy ORM, użyj funkcji przechwytywania zamiast DIH. Na przykład można użyć hibernate events, aby zaktualizować indeks na temat aktualizacji, wstawiania lub usuwania.
2
Chciałbym mieć flagę "usuniętą", więc w rzeczywistości nie usuwam swoich danych! Zależy od tego, jak bardzo jesteś paranoikiem. Lubię sugestie Mauricio ...
+0
"usunięte" flag = Dobre połączenie! – Brian
Powiązane problemy
- 1. Jak radzić sobie z danymi relacyjnymi w Solr
- 2. Jak radzić sobie z połączeniami z hgsubversion?
- 3. Jak radzić sobie z unique_ptr z SWIG
- 4. Jak radzić sobie z podprojektami z autotoolami?
- 5. Jak radzić sobie z polimorfizmem z JSF2?
- 6. Jak radzić sobie z deserializacją z polimorfizmem?
- 7. Jak radzić sobie z danymi wynikowymi fetchxml?
- 8. Jak radzić sobie z StackOverflowError w Javie?
- 9. Jak radzić sobie z tym błędem git
- 10. Jak radzić sobie z Eclipse CDT + Cygwin?
- 11. jak radzić sobie z unicode w mako?
- 12. Jak radzić sobie z IEnumerable w F #?
- 13. Jak radzić sobie z autorotacją w AVCaptureVideoPreviewLayer?
- 14. Jak radzić sobie z awarią AsyncTask
- 15. Jak radzić sobie z nieujemnymi modami?
- 16. Jak radzić sobie z nieciągłością Git?
- 17. Jak radzić sobie z błędem ETIMEDOUT?
- 18. Jak radzić sobie z błędami pobierania JavaScript?
- 19. Jak radzić sobie z GooglePlayServicesRepairableException i GooglePlayServicesNotAvailableException
- 20. Jak radzić sobie z Simultaneous javascript xmlhttpdquests?
- 21. Jak radzić sobie z przestrzenią nazw Haskell?
- 22. Jak radzić sobie z przepełnieniem w C
- 23. Jak radzić sobie z org.apache.tomcat.util.threads.TaskQueue.take() hotspot?
- 24. Jak radzić sobie z IOException w Iterable.forEach?
- 25. Jak radzić sobie z wyjątkami REST?
- 26. Jak radzić sobie z monstrualnymi działaniami Struts?
- 27. swift - Jak radzić sobie z niezamkniętym wyjątkiem
- 28. Jak radzić sobie z usługą RestClient :: ServerBrokeConnection
- 29. gettext, jak radzić sobie z homonimami?
- 30. Jak skonfigurować replikację Solr z wieloma rdzeniami?
To świetna lista! Nadal używam wersji 1.3, ale jest to przekonujący powód, aby spojrzeć na przełączanie. –
Tak, Solr 1.4 właśnie przeszedł RC, ostateczne wydanie jest nieuchronne. –
Witaj Mauricio, czy są jakieś dobre przykłady użycia preImportDeleteQuery podczas importowania delta na usuniętych dokumentach? – Joyce