2014-01-28 3 views
0

Lucene не документирует ограничения механизма хранения. Кто-нибудь знает максимальное количество индексов, разрешенных для каждого документа?Какое максимальное количество индексов lucene.net может обрабатывать в документе

+0

Что вы подразумеваете под "max number of indexes"? Индекс состоит из документов, которые состоят из полей, состоящих из терминов. Вы имеете в виду максимальное количество полей? –

+0

да, это правильно. Знаете ли вы максимальное количество полей, которые могут быть проиндексированы в документе? – Luke101

ответ

1

Как предлагается для всех типов индексов (Lucene, RDBMS или иначе), предлагается индексировать наименьшее возможное количество полей, поскольку оно уменьшает размер вашего индекса и сокращает накладные расходы во время выполнения из индекса.

С учетом этого ограничения на количество полей ограничены вашими системными ресурсами. Поля идентифицируются по их имени (с учетом регистра), а не по произвольному числовому идентификатору, который обычно становится ограничивающим фактором в этих типах систем. Теоретические ограничения количества полей также трудно предсказать в системе без строгих максимальных длин имен полей, таких как Lucene.

Я лично использовал более 200 анализируемых полей более чем на 2 миллиарда документов без проблем. В то же время производительность для того же индекса не была тем, чего я ожидал с меньшими индексами на среднюю Azure VM.

1

Когда речь идет о номерах терминов, текущая реализация Lucene использует Java int для хранения индекса термина, что означает, что максимальное количество уникальных терминов в любом сегменте индекса составляет ~ 2,1 миллиарда раз от индекса индексного интервала (по умолчанию 128) = ~ 274 миллиарда. Это технически не является ограничением формата индексного файла, как раз в текущей реализации Lucene.

Аналогично, Lucene использует Java int для ссылки на номера документов, а формат индексного файла использует Int32 на диске для хранения номеров документов. Это ограничение как формата индексного файла, так и текущей реализации. В конце концов, их следует заменить либо значениями UInt64, либо, еще лучше, значениями VInt, которые не имеют ограничений.

http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/codecs/lucene40/package-summary.html#Limitations

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