|
|
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
Делаю прототип системы поиска. Нужна ваша помощь. Есть таблица в оракле с несколькими полями разных типов. Нагенирил данных похожих на реальные. 300 тыс.строк. Пример: Номер платежа Дата время Сумма фио.плательщика Тел.плательщика Имя получателя Счёт получателя314 2015-07-20T15:14:35Z 540.63 Иванова Вера Джулиусовна +7 916 0060157 АмРест 1826069778664190000 30338 2015-08-05T15:14:35Z 440.87 Иванова Зинаида Левовна +7 903 0060158 Арктел 1058284431947360000 80442 2015-08-01T15:14:35Z 941.91 Иванова Маргарита Шамсуддиновна +7 926 0060159 Аэропракт 1777648183270200000 Размер таблицы в оракле 62 мегабайта (инфа от Toad). Импортировал таблицу в солр 5.2.1 (под windows). Размер индекса с данными: 89 мегабайт Размер индекса без данных: 68 мегабайт Вопрос: возможно ли уменьшить размер индекса? Следующие варианты уже исследованы: Уменьшение количества индексированных полей, отключение хранения данных в солре, исключения части строк из индекса. Нужны дополнительные возможности уменьшения размера индекса. Есть такие? Почему разместил этот вопрос в форуме Java? Потому что, в нём больше всего вопросов по solr lucene. Список распространённых фамилий нашёл в интернете. Список имён и названия юрлиц нашёл в википедии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 12:05 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
L7, Преждевременная оптимизация - зло. Ваша база на любой флэшке поместится. Куда там резать то еще? Пилите дальше приложение. На размер забить. Допустим потребовались доработки, новые поля, таблицы,... Вся ваша оптимизация коту под хвост пойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 13:51 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
L7, а зачем хранить таблицу в Solr? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 13:53 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
sanBez, Спасибо. Согласен во всём. Но заказчик говорит, что размер исходных данных десятки терабайт (в моём прототипе 62 мб). Стоимость дисков по-любому будет существенной частью стоимости системы. base2, Спасибо. В моё прототипе (html+js) проще получить данные из солра же. В реальной системе, скорее всего, от солра буду получать только id документа, затем - данные из реляционной БД. Solr рассматриваем, потому что он обычно мгновенно выдаёт ответ на запрос. 1 вариант ответа на мой вопрос: можно сжать индекс средствами файловой системы. В прототипе на NTFS: было 89, стало 63 мб. Съэкономлено: 30%. Прогнозирую существенную потерю производительности на больших данных. Скопировал солр с данными как есть из винды в линукс - всё работает отлично. Пере-импортировал-индексировал те же данные. Получил размер индекса с данными: 145 мегабайт. вопрос 2: почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 14:23 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
L7Размер таблицы в оракле 62 мегабайта (инфа от Toad). Импортировал таблицу в солр 5.2.1 (под windows). Размер индекса с данными: 89 мегабайт Размер индекса без данных: 68 мегабайт Вопрос: возможно ли уменьшить размер индекса? Следующие варианты уже исследованы: Уменьшение количества индексированных полей, отключение хранения данных в солре, исключения части строк из индекса. Нужны дополнительные возможности уменьшения размера индекса. Есть такие? Я не знаю какие выводы следуют из эксперимента. То что Lucene/Sold более прожёрлив чем Oracle? Нет. Что за цифра 62 мегабайта от Тоад? Как бывший Оракл-ДБА я вам могу сказать что это может быть 1) Размер db_blocks, размер экстентов? 2) Размер сегмента или табличного просранства где лежит 1 табличка? Что за 89, 68 мегабайт? Для какой версии Lucene.version ? Какие алгоритмы токенизации использовались для Russian Words? Насколько они эффективны для вашей задачи? Какая кодовая страница исходных данных (здесь я упоминаю о своём собственном баге когда в вливал в Lucene в win-1251 кодировке сырые данные что приводило к отказу токенизации и взрывному росту индекса). И фишка в том что обнаружить этот баг без избирательных тестов поиска было невозможно. Баг на этапе загрузки не детектился никак. Так что кодировки... кодировки... Курите их вни-ма-тель-но. И самое главное. Что за спички? Что за 30% ? Как можно полёт шмеля экстраполировать на полёт вертолёта? Там же другая физика. Когда заказчик ставит задачу измерения терабайтов - и меряйте терабайты. Но учитывайте 1) гистерезис хранилища. Добавление "не равно" добавлению + update. Delete не всегда вызывает освобождение физического места. 2) Резерв 25% на рост. Цифру я взял с потолка. Обычно структуры данных наподобие B+Tree резервируют в каждой странице (листике или блоке) метсто для updates и нет никаких оснований требовать от структуры хранения того-же логического размера который был в CSV или исходных данных. И эти 25 % разумная плата за скорость. И нечего заказчику здесь торговаться или сравнивать с Ораклом. Это фейл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 15:45 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
mayton, спасибо за ответ. maytonЧто за цифра 62 мегабайта от Тоад? Есть программа "Toad for Oraclr". Меню Database - Schema Browser - Tables - имя таблицы - клик - на закладке Stats/size написано: Size 62 Mb. maytonЧто за 89, 68 мегабайт? Для какой версии Lucene.version ? Solr 5.2.1 Lucene по умолчанию, не знаю как посмотреть версию. Остальное по умолчанию. Кодировка - подозреваю UTF-8. База содержит русские слова (см.выше пример), солр успешно возвращает их в своей админке на страничке core - Query в читаемом виде. Как проверить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 18:23 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
L7клик - на закладке Stats/size написано: Size 62 MbМожно подумать, что это сильно определяет размер пророческих табличных пространств. //сарказм - выключен. Поэтому, как вам уже сказали, или тестирование на адекватных наборах данных или заказчик заказывал результат, а не управление процессом разработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 18:52 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
L7Вопрос: возможно ли уменьшить размер индекса? Ответ: вам Solr не нужен, т.к. вы хотите использовать его не по назначению. Сэкономить на дисках? Х-х-ы. Для десятков терабайт данных понадобится кластер серверов Solr. Искать в нём только ID? Опять х-хы-хы. Solr позволяет производить поиск по многим признакам, а также полнотекестный. И с чего вы решили, что поиск по одному ID ускорится, если в Solr индексы хранятся в файлах. Тем более Lucene не подойдёт - отличается тем, что модификация индекса синхронная, то есть во время изменения данных. Поэтому на большом объёме данных будет замедлять работу базы. А также нельзя создать кластер Lucene. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 20:37 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
L7В реальной системе, скорее всего, от солра буду получать только id документа, затем - данные из реляционной БД. Solr рассматриваем, потому что он обычно мгновенно выдаёт ответ на запрос. Почему бы не искать сразу в БД? Добавьте индексы по нужным полям. Солр не для этих целей предназначен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 20:55 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
L7Solr 5.2.1 Lucene по умолчанию, не знаю как посмотреть версию. Остальное по умолчанию. Кодировка - подозреваю UTF-8. База содержит русские слова (см.выше пример), солр успешно возвращает их в своей админке на страничке core - Query в читаемом виде. Как проверить? Вобщем я не специалист в Solr. Но если у него в вершине стека технологий стоит Lucene то нужные ответы стоит искать в документации по Люсин. Кстати этот проект бурно развивается и буквально каждую мажорную версию у него меняется формат storage. Это я установил экспериментально пробуя разные режимы совместимости IndexWriter. По поводу russian. Экспериментально я установил что чем сильнее у тебя токенизатор режет входной поток и чем сильнее и умнее работает Стемминг - тем компактнее выходит индекс. Здесь не пытайся спрашивать меня чо и как. Кури сорцы. Экспериментируй. Я дарю тебе авторскую картинку. Рисовал ее сам для 5-й версии но сейчас в тренде уже http://mvnrepository.com/artifact/org.apache.lucene/lucene-core/5.2.1 Еще по теме можешь почитать про Elastic Search. Это тоже Lucene + еще несколько умных доработок и хороший веб-GUI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2015, 00:34 |
|
||
|
Размер индекса solr / lucene
|
|||
|---|---|---|---|
|
#18+
L7sanBez, Спасибо. Согласен во всём. Но заказчик говорит, что размер исходных данных десятки терабайт (в моём прототипе 62 мб). Стоимость дисков по-любому будет существенной частью стоимости системы. Почитайте статью 600 терабайт в кармане брюк Как раз про сжатие в полнотекстовых поисковых системах. К Solr правда отношения не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2015, 21:41 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39029715&tid=2125047]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
139ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 437ms |

| 0 / 0 |
