Независимо от того, является ли поле многозначным или нет (то, что вы описываете), оно настроено на значение по умолчанию для типа поля, но это значение может быть переопределено для каждого поля, которое вы определяете,Таким образом, разница между string
и strings
заключается только в том, что последний имеет multiValued="true"
по умолчанию, в то время как string
имеет multiValued="false"
по умолчанию.
При определении поля вы можетепереопределите это, чтобы указать, разрешает ли ваш документ многозначность определенного поля, независимо от того, что говорится в определении типа поля.
<field name="string_field" type="string" multiValued="true"/>
будет иметь то же значение, что и тип поля strings
, поскольку это явно разрешаетполе должно иметь несколько значений в поле.
Таким образом, в вашем случае вы можете использовать text_general
- для него может быть не установлено значение multiValued по умолчанию, но вы можете настроить его при определении поля.
<field name="your_field_name" type="text_general" multiValued="true" />
Разница между text_general
и string
заключается в том, что к text_general
применена цепочка анализа и токенизатор, так что текст разбивается внутри на более мелкие токены.
У Lucene есть жесткое ограничение на 32768 символов на токен, и это ограничение, которое вы применяете при индексировании большего значения в поле string
.
Если вы собираетесьхранить большие капли в Solr, я бы порекомендовал поместить их в Amazon S3 или другое хранилище данных и вместо этого сохранять сгенерированный идентификатор в Solr.Таким образом, размер индекса остается меньшим, и вы убираете накладные расходы при объединении сегментов.