Как установить несколько полей как 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) поля в уникальном ключе так, как вы пытаетесь это сделать. Он должен указывать на одно строковое поле. Вы должны иметь возможность сгенерировать объединенное поле значений, которые вы хотите, в одну уникальную строку перед индексацией.

Другие вопросы по тегам