Я хочу обновить части документа в Apache Solr 4.0 с помощью PHP Solarium, а не обновлять весь документ. Я знаю, что это возможно в Solr (документация в SolrЯ просто не могу найти какую-либо документацию о том, как сделать это в солярии. Вся существующая документация Solarium указывает на необходимость обновления всего документа, что является проблематичным и ненужным.
Помните, что для обновления полей в документе Solr необходимо, чтобы все соответствующие поля были сохранены — Solr извлечет и повторно добавит весь документ в фоновом режиме, поэтому частичное обновление может быть не менее «проблемным» или «ненужным». Хорошая стратегия индексирования заключается в том, чтобы всегда иметь возможность быстро воссоздавать (и повторно индексировать) ваш документ из исходного источника из-за преобразований Solr, применяемых при индексации.
С этим, как говорится, солярий поддерживает частичные обновления с помощью setFieldModifier
.
$doc2 = $update->createDocument();
$doc2->setKey('id', 1);
$doc2->addField('price', '100');
$doc2->setFieldModifier('price', 'set');
Других решений пока нет …