2015-03-03 2 views
0

Возьмите этот сценарий:Я хочу переиндексацию всей коллекции в Apache Solr с помощью Solrj клиента

Я импортированные данные из Oracle Relation таблицы т.е. wlslog, который содержит 4 строки. Теперь я индексирую эти данные из Apache Solr Console. Теперь, когда я запрашиваю эту коллекцию из Solrj, она извлекает 4 строки как expeced. Но теперь я добавляю 2 новые строки из базы данных Oracle в таблицу wlslog. Но когда я звоню в эту коллекцию через клиент solrj. Он извлекает только 4 строки, которые я импортировал один раз.

Так что в Solrj есть какой-либо способ, чтобы мы могли получить все 6 строк без повторной индексации или импорта данных. ?

дайте мне знать, если у вас есть вопросы.

+0

Обычно в приложение добавляется документ в Solr при добавлении новой строки DB; это то, что вы имели в виду? – Yann

+0

@Yann >> В принципе, здесь есть несколько пакетных процессов, которые меняют таблицу базы данных (т.е. wlslog) или существуют некоторые формы, которые обновляют таблицу базы данных (т. Е. Wlslog) .. и то же самое я хочу обновить в Apache Solr база данных .. так или иначе, через что я могу это сделать? Я не хочу каждый раз импортировать все данные через Solrj. Я просто хочу импортировать все измененные/добавленные данные в таблицу, чтобы отразить в Apache Solr, используя Solrj Client. –

+0

Я не могу придумать, как это сделать, кроме вашего приложения (пакетного или интерактивного) обновляет индекс Solr одновременно с обновлением базы данных. – Yann

ответ

0

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

Если у вас есть средства контроля над источниками модификации, гораздо проще изменить процессы thoses для обновления записей Oracle и индекса Solr в транзакции.

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