Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Размер индекса solr / lucene / 11 сообщений из 11, страница 1 из 1
14.08.2015, 12:05
    #39029336
L7
L7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
Делаю прототип системы поиска. Нужна ваша помощь.

Есть таблица в оракле с несколькими полями разных типов. Нагенирил данных похожих на реальные. 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.
Список распространённых фамилий нашёл в интернете. Список имён и названия юрлиц нашёл в википедии.
...
Рейтинг: 0 / 0
14.08.2015, 13:51
    #39029445
sanBez
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
L7,

Преждевременная оптимизация - зло. Ваша база на любой флэшке поместится. Куда там резать то еще? Пилите дальше приложение.
На размер забить. Допустим потребовались доработки, новые поля, таблицы,... Вся ваша оптимизация коту под хвост пойдет.
...
Рейтинг: 0 / 0
14.08.2015, 13:53
    #39029449
base2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
L7, а зачем хранить таблицу в Solr?
...
Рейтинг: 0 / 0
14.08.2015, 14:23
    #39029490
L7
L7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
sanBez,
Спасибо. Согласен во всём. Но заказчик говорит, что размер исходных данных десятки терабайт (в моём прототипе 62 мб).
Стоимость дисков по-любому будет существенной частью стоимости системы.

base2,
Спасибо. В моё прототипе (html+js) проще получить данные из солра же. В реальной системе, скорее всего, от солра буду получать только id документа, затем - данные из реляционной БД. Solr рассматриваем, потому что он обычно мгновенно выдаёт ответ на запрос.


1 вариант ответа на мой вопрос: можно сжать индекс средствами файловой системы. В прототипе на NTFS: было 89, стало 63 мб. Съэкономлено: 30%. Прогнозирую существенную потерю производительности на больших данных.

Скопировал солр с данными как есть из винды в линукс - всё работает отлично. Пере-импортировал-индексировал те же данные. Получил размер индекса с данными: 145 мегабайт.
вопрос 2: почему?
...
Рейтинг: 0 / 0
14.08.2015, 15:45
    #39029570
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
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 % разумная плата
за скорость. И нечего заказчику здесь торговаться или сравнивать с Ораклом. Это фейл.
...
Рейтинг: 0 / 0
14.08.2015, 18:23
    #39029715
L7
L7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
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 в читаемом виде. Как проверить?
...
Рейтинг: 0 / 0
14.08.2015, 18:52
    #39029735
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
L7клик - на закладке Stats/size написано: Size 62 MbМожно подумать, что это сильно определяет размер пророческих табличных пространств. //сарказм - выключен.
Поэтому, как вам уже сказали, или тестирование на адекватных наборах данных или заказчик заказывал результат, а не управление процессом разработки.
...
Рейтинг: 0 / 0
14.08.2015, 20:37
    #39029785
Partisan M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
L7Вопрос: возможно ли уменьшить размер индекса?

Ответ: вам Solr не нужен, т.к. вы хотите использовать его не по назначению. Сэкономить на дисках? Х-х-ы. Для десятков терабайт данных понадобится кластер серверов Solr. Искать в нём только ID? Опять х-хы-хы. Solr позволяет производить поиск по многим признакам, а также полнотекестный. И с чего вы решили, что поиск по одному ID ускорится, если в Solr индексы хранятся в файлах.
Тем более Lucene не подойдёт - отличается тем, что модификация индекса синхронная, то есть во время изменения данных. Поэтому на большом объёме данных будет замедлять работу базы. А также нельзя создать кластер Lucene.
...
Рейтинг: 0 / 0
14.08.2015, 20:55
    #39029792
base2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
L7В реальной системе, скорее всего, от солра буду получать только id документа, затем - данные из реляционной БД. Solr рассматриваем, потому что он обычно мгновенно выдаёт ответ на запрос.

Почему бы не искать сразу в БД? Добавьте индексы по нужным полям. Солр не для этих целей предназначен.
...
Рейтинг: 0 / 0
15.08.2015, 00:34
    #39029858
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
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.
...
Рейтинг: 0 / 0
15.08.2015, 21:41
    #39030117
Прадед
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер индекса solr / lucene
L7sanBez,
Спасибо. Согласен во всём. Но заказчик говорит, что размер исходных данных десятки терабайт (в моём прототипе 62 мб).
Стоимость дисков по-любому будет существенной частью стоимости системы.


Почитайте статью 600 терабайт в кармане брюк
Как раз про сжатие в полнотекстовых поисковых системах.

К Solr правда отношения не имеет.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Размер индекса solr / lucene / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]