Можете ли вы удалить поле из документа в индексе Solr? - PullRequest
10 голосов
/ 26 января 2011

У меня большой индекс, и во время процесса индексации произошла ошибка. Поэтому, чтобы избежать переиндексации, которая занимает несколько дней, я хочу просто удалить определенное поле и переиндексировать. Есть какие-нибудь предложения?

Ответы [ 6 ]

8 голосов
/ 30 октября 2013

Если вы используете Solr 4, вы можете использовать AtomicUpdate http://wiki.apache.org/solr/Atomic_Updates, чтобы намного легче удалить поле.Например:

curl http://localhost:8983/solr/update?commit=true -H 'Content-type:application/json' --data-binary '[{"id": "630911fa-711a-3944-b1d2-cda6857f9827", "field_to_be_removed": {"set": null}}]'
5 голосов
/ 01 апреля 2015

вы можете сделать это, если ваши остальные поля сохранены, т.е. stored="true " .as следует установкой нулевого значения.

<add>
  <doc>
    <!-- your unique key field -->
    <field name="employeeId">05991</field>  
    <!-- what ever field you want to delete -->
    <field name="skills" update="set" null="true" /> 
  </doc>
</add>

Источник: https://wiki.apache.org/solr/UpdateXmlMessages

5 голосов
/ 22 марта 2011

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

4 голосов
/ 26 января 2011

Вы можете удалить проиндексированный документ по его идентификатору. Если вы хотите изменить схему, удалив поле, то да, вам придется переиндексировать.

2 голосов
/ 29 ноября 2011

Вы можете удалить весь индекс, используя команду delete и запрос, подобный этому:

java -Ddata=args -Dcommit=yes -jar post.jar "<delete><query>*:*</query></delete>"

Использование аргумента -Dcommit принудительно для обновления индекса, поэтому будьте осторожны, не удаляя все документы, когда вы этого не хотите.

0 голосов
/ 26 июля 2016

Вы можете удалить индексированное значение по полю в Solr, но не по полю.

Если вы действительно хотите удалить определенное поле во время индексации, вам следует настроить поле в файле schema.xml перед индексацией документа.

...