2015-09-10 6 views
0

Мой контент (из базы данных) сначала считывается в индекс поиска elasticsearch через полный индекс, который хранит данные записи db в классе, а затем добавляет каждый экземпляр класса в созданный индекс.Повторный индекс Elasticsearch

Мой вопрос заключается в том, как бы я сделать инкрементный индекс ...

я хочу иметь работу запускать каждый набор количество времени, и любые записи, найденные в БД, которые были обновлены в то время я хочу их перенумеровать ...

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

client.Index (MyContent)

как полный индекс использует, как это добавит еще одну копию этой записи в индекс ...

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

благодаря

ответ

0

Там нет никакой магии здесь, вам нужно будет поддерживать какие-то поле метки времени, которая обновляется каждый раз, когда вставка или изменение происходит в строку. Также убедитесь, что первичный ключ сделан как идентификатор документа, таким образом обновленные документы написаны и не созданы как дубликаты.

Я бы порекомендовал this JDBC importer написал Jörg Prante.

В README, он объяснил инкрементное использование с помощью следующих -

{ 
    "type" : "jdbc", 
    "jdbc" : { 
     "url" : "jdbc:mysql://localhost:3306/test", 
     "user" : "", 
     "password" : "", 
     "sql" : [ 
      { 
       "statement" : "select * from \"products\" where \"mytimestamp\" > ?", 
       "parameter" : [ "$metrics.lastexecutionstart" ] 
      } 
     ], 
     "index" : "my_jdbc_index", 
     "type" : "my_jdbc_type" 
    } 
} 
+0

ок спасибо Im используя # Windows Form решения C ... им распознающих изменение строки с проверкой в ​​хранимой процедуре, которая затем возвращается строки или строки записей, которые были обновлены за этот установленный период. – user2895142

+0

вы ссылаетесь на то, чтобы сделать elasticsearch таким же, как мой собственный идентификатор в моем классе poco? – user2895142

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