/ / Маніпулювати індексом Solr з люценом - сольром, люценом

Маніпулювати індексом Солр з Люцен - Солр, Люцен

У мене є ядро ​​з 100K-1000k документів.
У мене є сценарій, в якому потрібно додати або встановити значення поля в більшості документів.
Роблячи це через Solr займає занадто багато часу.
Мені було цікаво, чи є спосіб зробити таке завдання з бібліотекою Lucene і отримати доступ до індексу Solr безпосередньо (з меншими накладними витратами).
Якщо необхідно, я можу вимкнути ядро, запустити мій код і перезавантажити ядро ​​після цього (сподіваючись, що це займе менше часу, ніж робити це з Solr).
Це буде здорово почути, якщо хтось вже зробив таку річ і які головні пастки на шляху.

Відповіді:

0 для відповіді № 1

Подібна проблема багато разів обговорювалася в списку розсилки Lucene Java. Основна проблема полягає в тому, що ви не можете оновлювати документ в Lucene (і, отже, Solr).

Замість цього потрібно видалити документ івставити новий. Це, очевидно, додає накладні витрати на аналіз, об'єднання сегментів індексів і т.д. Однак вказана кількість документів не є чимось важливим і не повинна займати декілька днів (чи намагалися ви оновити Solr з кількома потоками?).

Ви, звичайно, можете спробувати зробити це через Lucene і подивіться, чи це має значення, але ви повинні бути абсолютно впевнений Ви будете використовувати ті ж аналізатори, що і Солр.


0 для відповіді № 2

У мене є сценарій, в якому потрібно додати або встановити значення поля в більшості документів.

Якщо ви повинні робити це часто, можливо, вам потрібно подивитися на такі речі ExternalFileField. Є обмеження, але це може бути краще, ніж зламати інфраструктуру Солра, прямуючи до Лучене.