Как установить несколько полей как UniqueKey в Solr?
У меня есть эти поля в моей схеме Solr:
<fields>
<field name="Id" type="string" indexed="true" stored="true" multiValued="false" required="true" />
<field name="IdCategory" type="string" indexed="true" stored="true" multiValued="false" required="true" />
<field name="Rank" type="long" indexed="true" stored="true" multiValued="false" required="true" />
<field name="TypeRank" type="string" indexed="true" stored="true" multiValued="false" required="false" default="category" />
<field name="_version_" type="long" indexed="true" stored="true"/>
</fields>
Могу ли я использовать 2 или 3 поля в качестве уникальных ключей вместо одного? Когда я пытаюсь:
<uniqueKey>(Id,IdCategory,Rank,TypeRank)</uniqueKey>
Я получаю следующую ошибку:
org.apache.solr.common.SolrException: org.apache.solr.common.SolrException: Ошибка разбора схемы: неизвестное поле '(Id,IdCategory,Rank,TypeRank)'. Файл схемы - /var/solr/Rank/schema.xml
1 ответ
Решение
Вы не можете использовать 2 или 3 (или 4) поля в уникальном ключе так, как вы пытаетесь это сделать. Он должен указывать на одно строковое поле. Вы должны иметь возможность сгенерировать объединенное поле значений, которые вы хотите, в одну уникальную строку перед индексацией.