Solr 4 beta отсутствует, версия GA скоро появится. Частичные обновления документов были в течение некоторого времени, как описано здесь: http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/
Однако я не понял, как это сделать с помощью solrj api.
Кто-нибудь знает, возможно ли это с помощью solrj? Или Solrj просто не работает с этой функцией?
update:, как я описываю в списке рассылки (см. ответ здесь), я обнаружил, что в solrj api значение SolrInputField может быть картой - это не должно быть простым скалярным значением.
Если это карта, solrj добавляет дополнительный атрибут update
к элементу xml поля.
Например,
Этот код:
SolrInputDocument doc = new SolrInputDocument();
Map<String, String> partialUpdate = new HashMap<String, String>();
partialUpdate.put("set", "foo");
doc.addField("id", "test_123");
doc.addField("description", partialUpdate);
дает этот документ:
<doc boost="1.0">
<field name="id">test_123</field>
<field name="description" update="set">foo</field>
</doc>
В этом примере я использовал слово "set" для этого дополнительного атрибута, но он не работает. Solr не обновляет поле, как я ожидал. Согласно этой ссылке: http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/ допустимые значения "установлены" и "добавить".
Любая идея?