Поле обновления Solr на основе другого поля
Мне нужно создать новое поле в моей базе данных Solr.
Мои данные похожи на:{id: "что-то", name_s: "какое-то имя" }
Я хочу добавить новое поле name_t.
Проблема в том, что я хочу обновить новое поле name_t значением name_s. И я хочу сделать это со всей моей коллекцией документов.
Я ожидал найти что-то вроде этого: { id: "xxx", name_t: { add: $name_s }}
Есть ли способ сделать это?
Спасибо!
1 ответ
Если у вас есть все ваши поля с сохраненным /docValues, то это будет работать:
добавить copyField для name_t, например
<copyField source="name_s" dest="name_t"/>
Конечно, вам нужно иметь динамический тип *_t или поле и т. Д.
- используйте cursorMark для итерации по всем документам эффективным способом
- для каждого документа запускайте переиндексацию с атомарным обновлением, обновляя некоторые поля до того же текущего значения. Я думаю, что мог бы быть способ вызвать это также, посылая без операции, но не уверенный в деталях.