У мене є ядро з 100K-1000k документів.
У мене є сценарій, в якому потрібно додати або встановити значення поля в більшості документів.
Роблячи це через Solr займає занадто багато часу.
Мені було цікаво, чи є спосіб зробити таке завдання з бібліотекою Lucene і отримати доступ до індексу Solr безпосередньо (з меншими накладними витратами).
Якщо необхідно, я можу вимкнути ядро, запустити мій код і перезавантажити ядро після цього (сподіваючись, що це займе менше часу, ніж робити це з Solr).
Це буде здорово почути, якщо хтось вже зробив таку річ і які головні пастки на шляху.
Відповіді:
0 для відповіді № 1Подібна проблема багато разів обговорювалася в списку розсилки Lucene Java. Основна проблема полягає в тому, що ви не можете оновлювати документ в Lucene (і, отже, Solr).
Замість цього потрібно видалити документ івставити новий. Це, очевидно, додає накладні витрати на аналіз, об'єднання сегментів індексів і т.д. Однак вказана кількість документів не є чимось важливим і не повинна займати декілька днів (чи намагалися ви оновити Solr з кількома потоками?).
Ви, звичайно, можете спробувати зробити це через Lucene і подивіться, чи це має значення, але ви повинні бути абсолютно впевнений Ви будете використовувати ті ж аналізатори, що і Солр.
0 для відповіді № 2
У мене є сценарій, в якому потрібно додати або встановити значення поля в більшості документів.
Якщо ви повинні робити це часто, можливо, вам потрібно подивитися на такі речі ExternalFileField. Є обмеження, але це може бути краще, ніж зламати інфраструктуру Солра, прямуючи до Лучене.