Эластичный поиск — невозможно индексировать содержимое большого файла в одном поле документа

#elasticsearch #exception #nest #elasticsearch-aggregation #elasticsearch.net

#elasticsearch #исключение #гнездо #elasticsearch-агрегация #elasticsearch.net

Вопрос:

Я создал индекс в эластичном поиске. И попытался добавить содержимое большого файла (700 МБ) в поле документа. Мы знаем, что elasticsearch будет поддерживать максимум до 2 ГБ документа, который может быть проиндексирован. Но он выдает ArgumentOutOfRangeException и сообщение гласит: «Слишком много символов. Результирующее количество байтов больше, чем может быть возвращено как int . (Параметр ‘charCount’)». Это исключение возникает перед отправкой запроса на эластичный сервер (во время построения данных post).

Найдите используемый пример кода:

  public class doc
    {
        public int id { get; set; }
        public string documentContent { get; set; }
    }
 person p = new perosn(){ id = 001, content = "700mbString Content" };//Exception source
    
 _client.Index(p,i=>i.index("indexName"));
 

Он работает до 600 МБ.

Кто-нибудь предлагает, как решить эту проблему.

Комментарии:

1. Какой тип содержимого вы хотите добавить в elasticsearch?

2. @dadoonet, я хочу проиндексировать все содержимое документа. необходимо добавить «текстовое» (строковое) содержимое.

3. Пожалуйста, поделитесь своим кодом nest, потому что это исключение, похоже, не имеет ничего общего с elasticsearch как таковым.

4. @JoeSorocin, я обновил вопрос с помощью используемого примера кода.

5. Не думаю, что это поддерживается NEST, поскольку запрос сериализуется в байтовый буфер, максимальный размер которого int.MaxValue