Когда я настроил отображение что-то вроде этого:
$mapping = new Mapping(…);
$mapping->setProperties([
…
'my_attachments' => [ 'type' => 'attachment', 'include_in_all' => true ]
]);
Он хранит содержимое файла в кодировке base64 и увеличивает индекс до смешного размера. Как я могу убедиться, что вложения индексируются и доступны для поиска, но не хранят их закодированное содержимое в индексе?
Нам нужно установить _source
исключить my_attachments
значение:
$mapping = new Mapping(…);
$mapping->setProperties([
…
'my_attachments' => [ 'type' => 'attachment', 'include_in_all' => true ]
]);
$mapping->setSource([ 'excludes' => 'my_attachments' ]);
После реализации этого и перестройки нашего тестового индекса размер уменьшился с 1,9 ГБ до 89 МБ.
Других решений пока нет …