2011-12-28 4 views
2

Я новичок в SOLR и занимался некоторыми исследованиями по этой технологии. У меня теперь есть вопрос относительно функции дельта-импорта, поэтому я посмотрел на SO и нашел это: Solr DataImportHandler delta import. В ответе есть поле [date_update], которое, как представляется, является отметкой времени записи.SOLR delta-import timestamp issue

Мой вопрос: Есть ли [date_update] временная метка, хранящаяся в таблице при создании записи? Если да, не может ли это создать проблемы, если дата сервера базы данных не совсем синхронизирована с сервером, на котором установлен SOLR? Это могло бы оставить некоторые записи, если время сервера Solr опережает время SQLServer.

ответ

1

Это решение может оставить некоторые записи (если серверы не настроены должным образом).

Я использую аналогичное решение, но с некоторыми изменениями. Элементы в БД имеют поле timestamp, обновляемое, когда элемент изменяется каким-либо образом.

Перед обновления индекса я получаю последнюю метку из Solr (это поле хранится), то я передаю эту метку время в индексном запросе в Solr (/? Команда = полный импорт & чистой = ложь & метки времени =. ..).

Using query attribute for both full and delta import

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

Вы также можете использовать эту проверку при использовании dataimporter.last_index_time.

+0

С Новым годом и спасибо за ваш ответ. В вышеприведенном ответе я думаю, что проблема все еще существует, поскольку временная метка Solr «timestamp of Solr (это поле хранится)» по-прежнему сравнивается с таблицей timestamp таблицы таблиц нет? Я думаю, что это просто процесс, который вы упомянули впоследствии, который проверяет, что все импортировано. Были ли у вас случаи, когда некоторые данные не были импортированы? – mrd3650

+0

Да, эта метка времени сравнивается с меткой времени в БД, но она также индексируется из БД, поэтому время на машине Солра не важно (не используется). – Fuxi

+0

Спасибо за ваш ответ. Однако я все еще не понимаю этого правильно. То, что меня смущает, - это предложение: «Перед обновлением индекса я получаю последнюю метку времени от Solr (это поле сохраняется) _ ** это dataimporter.last_index_time? ** _, тогда я передаю эту метку времени в индексном запросе Solr (/?command=full-import&clean=false×tamp=...)._ ". Кроме того, я предполагаю, что метка времени из Solr передается в качестве параметра в запросе импорта нет? – mrd3650

 Смежные вопросы

  • Нет связанных вопросов^_^