Solr / SolrNet: Как я могу обновить документ с уникальным идентификатором документа? - PullRequest
1 голос
/ 31 января 2012

Мне нужно обновить несколько полей каждого документа в индексе Solr отдельно от основного процесса индексации. Согласно документации «Создать» и «Обновить» отображаются на функцию «Добавить ()». http://code.google.com/p/solrnet/wiki/CRUD

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

Если он заменит весь документ, то единственный способ, который я могу придумать для обновления, - это найти документ по уникальному идентификатору, обновить объект документа и затем снова «добавить» его. Это не представляется возможным из-за частоты операций обновления. Есть ли лучший способ обновления?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 31 января 2012

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

Пожалуйста, смотрите предыдущийвопрос: Обновление определенного поля в индексе Solr для получения дополнительной информации о том, что Solr не поддерживает обновления отдельных полей, и открытая проблема JIRA для добавления этой поддержки в Solr.

1 голос
/ 25 февраля 2015

Частичное обновление документов теперь поддерживается в более новых версиях Solr, например, 4.10 работает довольно хорошо.Пожалуйста, посмотрите следующую страницу для получения дополнительной информации: https://cwiki.apache.org/confluence/display/solr/Updating+Parts+of+Documents

Единственная деталь - вам нужно объявить ваши поля как сохраненные = true, чтобы разрешить частичное обновление.

Я также покажу, каксделать это в этом тренинге: http://www.pluralsight.com/courses/enterprise-search-using-apache-solr

В этом конкретном модуле: Содержание: схемы, документы и индексирование

1 голос
/ 03 февраля 2012

Если вам необходимо часто обновлять большое количество документов в SOLR, вам может потребоваться переосмыслить все ваше решение. В типичных решениях, которые используют SOLR и требуют много частых обновлений документов, обычно это делается для того, чтобы документы находились в некоторой базе данных SQL или NoSQL, и они там изменяются. Затем вы используете DIH или что-то похожее на массовое обновление индекса SOLR из базы данных, возможно, просто удаляя индекс и переиндексируя весь контент. SOLR может очень быстро индексировать документы, так что обычно это не проблема.

...