Что такое omitNorms и поле версии в схеме solr?

Я не понимаю, когда использовать omitNorms = "true". Я читал 2-3 ссылки, но все же я не понимаю его смысла. что означает "Установите значение true, чтобы опустить нормы, связанные с этим полем (это отключает нормализацию длины и ускорение индекса времени для поля и сохраняет некоторую память). Только полные текстовые поля или поля, которые нуждаются в ускорении индекса нужны нормы". на http://wiki.apache.org/solr/SchemaXml страница

Ответы

Ответ 1

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

Поскольку он занимает место, его следует отключить, если не нужно.
Если не используется индексное увеличение времени ИЛИ, если поля являются короткими текстовыми полями или нетекстовыми полями, для которых не требуется нормализация длины.

Вы можете найти небольшое подробное объяснение здесь.

Когда нормы загружаются в IndexReader, они загружаются в байт [maxdoc] для каждого поля - так что даже если один документ из 400 миллион имеет поле, он все равно будет загружать байт [maxdoc] для этого поле, потенциально используя много оперативной памяти.


В качестве примера того, сколько ОЗУ мы говорим, одно поле в 10 миллионный индекс док будет занимать чуть меньше 10 МБ ОЗУ. Сто такие поля занимают около гигабайта оперативной памяти.