Как да работите с голяма база данни с помощта на Lucene?

Имам база данни с размер 2 GB. Използвам техниката за индексиране Lucene, за да направя търсенето по-бързо. Открих проблем, т.е. когато използвах за зареждане на данните в паметта, се показва съобщение за грешка „няма памет; размер на купчината на Java“. Има ли опция за зареждане на данните без увеличаване на размера на купчината на Java? Използвам 2GB RAM. Не намерих никакво решение на този проблем. Има ли някакво решение? Моля помогнете...


person Polen Patowary    schedule 13.12.2014    source източник


Отговори (1)


Lucene може лесно да индексира и търси над 200 Gb данни с по-малко от 10 Gb памет.

  1. Използвайте последната версия на Lucene.
  2. Ангажирайте индекс често. Трябва да запазите некоммитирани промени в паметта и се нуждаете от допълнителна памет, за да ги ангажирате и обедините сегменти.
  3. Настройте потреблението на памет от IndexWriterConfig.setRAMBufferSizeMB(double) и свързани функции и проверете индекс MergePolicy, ако натиснете OOM при сливане.
  4. Избягвайте използването на съхранени полета за големи петна от данни. За индексиране на DB е достатъчно да се съхрани само id.
  5. Използвайте подходящи полеви анализатори, речникът на термините ще бъде възможно най-малък.

Някои свързани връзки:

  1. Използване на RAM на Lucene за търсене (старо, но все още актуален)
  2. IndexWriterConfig.setRAMBufferSizeMB(double)
  3. Правила за сливане
person Nikolay    schedule 13.12.2014