Solr Composite Уникальный ключ от существующих полей в схеме

У меня есть индекс с именемLocationIndex в solr с полями следующим образом:

<fields>
    <field name="solr_id" type="string" stored="true" required="true" indexed="true"/>
    <field name="solr_ver" type="string" stored="true" required="true" indexed="true" default="0000"/>
    // and some more fields
</fields>
<uniqueKey>solr_id</uniqueKey>

Но теперь я хочу изменить схему так, чтобы уникальный ключ был составным из двух уже существующих полейsolr_id а такжеsolr_ver... что-то следующее:

<fields>
    <field name="solr_id" type="string" stored="true" required="true" indexed="true"/>
    <field name="solr_ver" type="string" stored="true" required="true" indexed="true" default="0000"/>
    <field name="composite-id" type="string" stored="true" required="true" indexed="true"/>
    // and some more fields
</fields>
<uniqueKey>solr_ver-solr_id</uniqueKey>

После поиска я обнаружил, что это возможно, добавив в схему следующее: (ref:Solr Composite Уникальный ключ от существующих полей в схеме)

<updateRequestProcessorChain name="composite-id">
  <processor class="solr.CloneFieldUpdateProcessorFactory">
    <str name="source">docid_s</str>
    <str name="source">userid_s</str>
    <str name="dest">id</str>
  </processor>
  <processor class="solr.ConcatFieldUpdateProcessorFactory">
    <str name="fieldName">id</str>
    <str name="delimiter">--</str>
  </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>

Итак, я изменил схему и, наконец, это выглядит так:

<updateRequestProcessorChain name="composite-id">
  <processor class="solr.CloneFieldUpdateProcessorFactory">
    <str name="source">solr_ver</str>
    <str name="source">solr_id</str>
    <str name="dest">id</str>
  </processor>
  <processor class="solr.ConcatFieldUpdateProcessorFactory">
    <str name="fieldName">id</str>
    <str name="delimiter">-</str>
  </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>

<fields>
    <field name="solr_id" type="string" stored="true" required="true" indexed="true"/>
    <field name="solr_ver" type="string" stored="true" required="true" indexed="true" default="0000"/>
    <field name="id" type="string" stored="true" required="true" indexed="true"/>
    // and some more fields
</fields>
<uniqueKey>id</uniqueKey>

Но при добавлении документа выдает ошибку:

org.apache.solr.client.solrj.SolrServerException: Server at http://localhost:8983/solr/LocationIndex returned non ok status:400, message:Document [null] missing required field: id

Я не понимаю, какие изменения в схеме требуются для работы по желанию?

В добавляемом документе он содержит поляsolr_ver а такжеsolr_id, Как и где это (solr) создастid поле путем объединения обоих этих полей что-то вродеsolr_ver-solr_id?

РЕДАКТИРОВАТЬ:

Вэта ссылка Дается, как обращаться к этой цепочке. Но я не могу понять, как это будет использоваться в схеме? И где я должен внести изменения?

Ответы на вопрос(3)

Ваш ответ на вопрос