1

I want to update parts of a document in Apache Solr 4.0 with PHP Solarium, and not update the whole document. I know its possible in Solr (documentation in Solr), I just cant find any documentation on how to do this in Solarium. all the existing Solarium documentation point me to updating the whole document, which is problematic and unnecessary.

Pooya Saberian
  • 971
  • 2
  • 9
  • 16

1 Answers1

5

Remember that updating fields in a Solr document requires you to have all relevant fields set as stored - Solr will retrieve and re-add the complete document in the background, so a partial update might not be any less "problematic" or "unnecessary". A good indexing strategy is to always be able to re-create (and re-index) your document quickly from the original source because of Solr transformations being applied when indexing.

With that being said, Solarium supports partial updates by using setFieldModifier.

$doc2 = $update->createDocument();
$doc2->setKey('id', 1);

$doc2->addField('price', '100');
$doc2->setFieldModifier('price', 'set');
MatsLindh
  • 49,529
  • 4
  • 53
  • 84