2015-03-05 4 views
-1

Вот мои команды рек JDBC для извлечения всех записей из базы данных.Elasticsearch: удалить повторяющиеся записи из индексных документов

localhost:9200/_river/my_update_river/_meta 
{ 
    "type" : "jdbc", 
    "jdbc" : { 
    "url" : "jdbc:mysql://localhost:3306/admin", 
     "user" : "root", 
     "password" : "", 
     "poll" : "6s", 
     "index" : "updateauto", 
     "type" : "users", 
     "schedule":"0/10 * * ? * *", 
     "strategy" : "simple", 
     "sql" : "select * from users" 
    } 
} 

Когда я запускаю эту команду: у меня есть две проблемы:

  1. Повторяющиеся записи
  2. И когда я добавить новые записи в базе данных его не обновляя индексные документы, но искать его

    { "запрос": { "отфильтрованный": { "фильтр": { "term": {"Name": "testing"} }} }}

Вот мой результат.

{ 
    "took" : 4, 
    "timed_out" : false, 
     "_shards" : { 
     "total" : 5, 
     "successful" : 5, 
     "failed" : 0 
    }, 
    "hits" : { 
    "total" : 37551, 
     "max_score" : 1.0, 
     "hits" : [ { 
     "_index" : "updateauto", 
     "_type" : "users", 
     "_id" : "AUvjnNHmMKBTPrby96Jg", 
     "_score" : 1.0, 
     "_source":{"ID":23,"Name":"Abudul Rafay","Email":"a","Password":"afasd"} 
}, { 
     "_index" : "updateauto", 
    "_type" : "users", 
    "_id" : "AUvjnNHnMKBTPrby96Jk", 
    "_score" : 1.0, 
    "_source":{"ID":25,"Name":"r rafay ","Email":"r rafay","Password":"r rafay"} 
}, { 
     "_index" : "updateauto", 
     "_type" : "users", 
     "_id" : "AUvjngk0MKBTPrby96Ka", 
     "_score" : 1.0, 
     "_source":{"ID":23,"Name":"Abudul Rafay","Email":"a","Password":"afasd"} 
}, { 
    "_index" : "updateauto", 
    "_type" : "users", 
    "_id" : "AUvjngk0MKBTPrby96Kf", 
    " _score" : 1.0, 
    "_source":{"ID":24,"Name":"rafay","Email":"hello","Password":"fasfas"} 
}, { 
     "_index" : "updateauto", 
     "_type" : "users", 
    "_id" : "AUvjnjA0MKBTPrby96Kh", 
    "_score" : 1.0, 
    "_source":{"ID":23,"Name":"Abudul Rafay","Email":"a","Password":"afasd"} 
}, { 
    "_index" : "updateauto", 
     "_type" : "users", 
    "_id" : "AUvjnjA0MKBTPrby96Km", 
    "_score" : 1.0, 
    "_source":{"ID":24,"Name":"rafay","Email":"hello","Password":"fasfas"} 
}, { 
    "_index" : "updateauto", 
    "_type" : "users", 
    "_id" : "AUvjnZP0MKBTPrby96KD", 
    "_score" : 1.0, 
    "_source":{"ID":24,"Name":"rafay","Email":"hello","Password":"fasfas"} 
}, { 
    "_index" : "updateauto", 
    "_type" : "users", 
    "_id" : "AUvjnPe-MKBTPrby96Jq", 
    "_score" : 1.0, 
    "_source":{"ID":25,"Name":"r rafay ","Email":"r rafay","Password":"r rafay"} 
}, { 
    "_index" : "updateauto", 
    "_type" : "users", 
    "_id" : "AUvjnR7NMKBTPrby96Ju", 
    "_score" : 1.0, 
    "_source":{"ID":26,"Name":"New User","Email":"New","Password":"new"} 
}, { 
    "_index" : "updateauto", 
    "_type" : "users", 
    "_id" : "AUvjnbuLMKBTPrby96KO", 
    "_score" : 1.0, 
    "_source":{"ID":26,"Name":"New User","Email":"New","Password":"new"} 
    } ] 
    } 
} 

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

ответ

1

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

Вам необходимо указать идентификатор документа внутри определения реки, как следует:

"sql" : "select *, ID as _id from user" 

Таким образом, река будет просто писать каждый пользователь, уступающий его id.

+1

О, спасибо .. его работа .. Мой второй вопрос был, когда я добавляю новую запись в базу данных, тогда индекс не обновляется автоматически, но теперь все в порядке. Теперь я просто хочу задать еще один вопрос: как я могу искать данные по одно слово, подобное '{"query": {"filter": {"term": {"Name": "a"}}}}' и получить все записи, содержащие слово 'a'. –

+0

Lol это один вопрос, поставленный человеком! быть крутым, и попытаться переформулировать свой последний вопрос, потому что я на самом деле не получаю то, что вы просите! – eliasah

+0

Хорошо. Ты прав. –

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