Поле обновления Solr на основе другого поля

Мне нужно создать новое поле в моей базе данных Solr.

Мои данные похожи на:{id: "что-то", name_s: "какое-то имя" }

Я хочу добавить новое поле name_t.

Проблема в том, что я хочу обновить новое поле name_t значением name_s. И я хочу сделать это со всей моей коллекцией документов.

Я ожидал найти что-то вроде этого: { id: "xxx", name_t: { add: $name_s }}

Есть ли способ сделать это?

Спасибо!

1 ответ

Если у вас есть все ваши поля с сохраненным /docValues, то это будет работать:

  1. добавить copyField для name_t, например

    <copyField source="name_s" dest="name_t"/>

    Конечно, вам нужно иметь динамический тип *_t или поле и т. Д.

  2. используйте cursorMark для итерации по всем документам эффективным способом
  3. для каждого документа запускайте переиндексацию с атомарным обновлением, обновляя некоторые поля до того же текущего значения. Я думаю, что мог бы быть способ вызвать это также, посылая без операции, но не уверенный в деталях.
Другие вопросы по тегам