2017-01-29 6 views
0

У меня есть ядро, у которого есть документы с некоторыми полями, индексированными, но не сохраненными (назовем их полями группы А). Когда я обновляю другие поля (индексированные и сохраненные, назовем их полями группы B), содержимое полей группы А будет потеряно.Solr Atomic Update - обновлять документы с полями, которые индексируются, но не сбрасываются

В настоящей документации Solr, Updating Parts of Documents, «Основная функциональность атомарного обновления документа требует, чтобы все поля в вашей схеме были сконфигурированы как сохраненные (хранимые =« true ») или docValues ​​(docValues ​​=« true »), за исключением поля, которые являются направления, которые должны быть выполнены в виде хранится = «ложь».

Итак, я должен проиндексировать весь сердечник каждый раз, когда я обновить поля группы B? все работы вокруг?

ответ

1

Да, если вы не нужно хранить поля, вам придется переинсталлировать их.

Атомное обновление в Solr реализован как документ для извлечения, изменить значения для тех полей, которые были изменены, и повторно отправить документ внутри. Если значения не сохранены, в повторной передаче будут отсутствовать эти значения.

Вам не нужно переиндексировать целое ядро ​​, только документы, которые изменились. Но да, эти поля должны быть установлены как хранимые или с docvalues ​​как истинные, если вы собираетесь использовать атомные обновления только для определенных полей.