2012-06-29 6 views
1

Я анализировал наилучший метод повышения производительности нашего индекса SOLR и, вероятно, покроет текущий индекс, чтобы позволить поиску распределяться.Разделение текущего индекса solr на осколки

Однако, учитывая, что наш индекс превышает 400 ГБ и содержит около 700 млн документов, переиндексирование данных кажется обременительным. Я занимался идеей дублирования индексов и удаления документов в качестве средства для более эффективного создания оштукатуренной среды.

К сожалению, модуль не может запросить внутренний цифровой идентификатор документа. Какие еще возможные стратегии разбиения можно использовать для удаления по запросу, а не для полного переиндекса?

ответ

1

инструмент Lucene бы работу IndexSplitter см упоминается here со ссылкой на статью (японский, tranlate его с Google ...)

+0

Структура lucene, похоже, изменилась из статьи. После загрузки и извлечения дистрибутива lucene следующая команда выглядит как разбиение индекса. –

+0

java -cp lucene-core-3.4.0.jar: contrib/misc/lucene-misc-3.4.0.jar org.apache.lucene.index.MultiPassIndexSplitter -out/indexes/shards -num 2/indexes/orig/индекс/ –

0

Если вы можете найти логический ключ для разделения данных, то он будет полезен более чем одним способом. Напр. можете ли вы, чтобы эти документы были разбиты по осколкам на основе некоторого хронологического порядка?

У нас аналогичная ситуация. У нас есть индекс 250M-документов, которые разбиваются на разные осколки на основе их созданной даты. Основной вариант использования заключается в поиске по этим осколкам в зависимости от диапазона созданной даты. Таким образом, поиск отправляется только в осколки, содержащие документы с заданным диапазоном дат. Могут быть другие преимущества для логически разделенных данных - например. планирование различных мощностей, применение различных качеств обслуживания для поисковых терминов и т. д.

Смежные вопросы