SOLR delta-import timestamp - PullRequest
       16

SOLR delta-import timestamp

2 голосов
/ 28 декабря 2011

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

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

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

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

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

Перед обновлением индекса я получаю последнюю метку времени от Solr (это поле сохраняется), затем я передаю эту метку времени в запросе индекса в Solr(/?command=full-import&clean=false ×tamp=...).

Использование атрибута запроса для полного и дельта-импорта

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

Вы также можете использовать такую ​​проверку, когдаиспользовать dataimporter.last_index_time.

0 голосов
/ 14 августа 2012

Вы можете использовать FlexCDC, который отслеживает двоичный журнал MySQL для изменений данных таблицы:

http://www.mysqlperformanceblog.com/2011/03/25/using-flexviews-part-two-change-data-capture/

...