Как добавить разные значения в поле с несколькими значениями в solr

У меня есть поле с несколькими значениями, называемое категорией (которое также является полем хранилища), в которое мне нужно добавить только разные значения.

<field name="category">value1</field>
<field name="category">value2</field>

Если я сделаю обновление следующим образом
<add>
<doc>
<field name="id">E02</field>
<field name="category" update="add">value2</field>
</doc>
</add>

Я получаю значение2, сохраненное дважды
<field name="category">value1</field>
<field name="category">value2</field>
<field name="category">value2</field>

Мне нужно хранить/обновлять только отдельные значения в полях категорий, которые являются многозначными полями. Как это сделать?

Заранее спасибо, Джагадеш.


person Jagadesh    schedule 09.04.2013    source источник


Ответы (2)


Эта функция была добавлена ​​для Solr 7.3.

Вы можете использовать действие атомарного обновления add-distinct вместо add.

См. ошибку Jira (SOLR-11267) и документацию. в Справочном руководстве. :

добавить отдельный

Добавляет указанные значения в поле с несколькими значениями, только если они еще не присутствуют. Может быть указано как одно значение или как список.

person DNA    schedule 02.08.2018

Можно «установить» вместо «добавить», чтобы воссоздать сохраненное поле при частичном обновлении документа. Поэтому, если у вас есть все значения поля, просто вставьте их в Set, а затем повторно заполните поле. У вас есть все данные для его воссоздания из-за требования stored field.

person Ion Cojocaru    schedule 09.04.2013
comment
Если я попробую это, да, value2сохранится один раз, но старые значения value1 будут потеряны. - person Jagadesh; 09.04.2013
comment
вам нужно установить все предыдущие + ваши, если они разные - person Ion Cojocaru; 09.04.2013
comment
Просто уточнение. Что делать, если поле не является сохраненным полем? - person Jagadesh; 09.04.2013
comment
частичные обновления применяются только к Solr ›= 4.0, и сохраненное поле является жестким требованием. В этом нет никакой магии, Solr нужен для восстановления (удаления и переиндексации) базового документа Lucene, а также для увеличения номера версии. В старых версиях это приходилось делать вручную. Подробнее solr.pl/en/2012 /07/09/solr-4-0-partial-documents-update - person Ion Cojocaru; 09.04.2013