Solr 4.x имеет эту новую новую функцию, которая позволяет указать, как при обновлении существующего документа будут обновляться поля с несколькими значениями. В частности, можно сказать, что если документ обновления заменит старые значения многозначного поля на новые или добавит новые значения к уже существующим.Solr, как использовать новые режимы обновления полей (атомные обновления) с помощью SolrJ
Я попытался это с помощью обработчика запроса, как описано здесь:
http://wiki.apache.org/solr/UpdateXmlMessages#Optional_attributes_for_.22field.22
Я использовал локон, чтобы отправить XML, где некоторые поля использовал update=add
вариант:
<field name="skills" update="add">Python</field>
Это работает так, как ожидалось.
Однако я не могу получить, как это сделать Java API (SolrJ).
Если я что-то вроде этого:
SolrInputDocument doc1 = new SolrInputDocument();
doc1.setField("ID_VENTE", "idv1");
doc1.setField("FACTURES_PRODUIT", "fp_initial");
solrServer.add(doc1);
solrServer.commit();
SolrInputDocument doc2 = new SolrInputDocument();
doc2.setField("ID_VENTE", "idv1");
doc2.setField("FACTURES_PRODUIT", "fp_2");
solrServer.add(doc2);
solrServer.commit();
Значение поля «FACTURES_PRODUIT» становится «fp_2» (теряется начальное значение). Я также попытался:
doc2.addField("FACTURES_PRODUIT", "fp_2");
, но результат тот же. Я также изучил класс SolrInputField, но не нашел ничего подобного.
Итак, мой вопрос: как я могу использовать Java API Solr 4 для обновленных значений в поле с несколькими значениями, добавив (не заменяя) новые значения?
Каков тип поданной «FACTURES_PRODUIT»? многозначное? – AlexZ