Как индексировать данные Json с помощью клиента NEST для эластичного поиска

Как я могу индексировать данные json с помощью NEST?

Если я пытаюсь проиндексировать некоторые данные в JSON, это дает мне следующую ошибку:

MapperParsingException[Malformed content, must start with an object]

Я видел, что мы можем сделать это с помощью PlainElastic.Net и т. д.

Есть ли способ сделать это в NEST?


person user2738620    schedule 02.09.2013    source источник


Ответы (1)


Вот как проиндексировать один пост в NEST:

var post = new Post() { Id = 12, ... }
var status = client.Index<Post>(post);

Вот как выполнить массовое индексирование многих документов:

var descriptor = new BulkDescriptor();
foreach (var i in Enumerable.Range(0, 1000))
    descriptor.Index<ElasticSearchProject>(op => op.Object(new ElasticSearchProject {Id = i}));

var result = this._client.Bulk(descriptor);

В документах NEST ознакомьтесь с разделами Index и Bulk для получения дополнительной информации.

person Scott Rice    schedule 10.09.2013
comment
Это работает потрясающе. Просто для справки, я попробовал оба способа на своем ноутбуке с ~ 67 000 записей. Индексирование каждого по отдельности в цикле заняло около 35 секунд. Использование Bulk с партиями по 10 000 заняло около 7 секунд. - person Adrian Carr; 05.05.2015