Как сохранить массив байтов как массив в NEST - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть простой объект POCO со следующим определением

class MyClass 
{
   public byte[] Assortment {get;set;}
}

И я хочу сохранить его как [1,2,3] вasticsearch.Но когда я просто создаю объект этого типа и вставляю его в индекс, я просто получаю некоторое двоичное кодированное значение.Пример кода:

var settings = new ConnectionSettings(new Uri(elasticSettings.NodeUri)).DefaultIndex(elasticSettings.Index);
var elasticClient = new ElasticClient(settings);
MyClass[] requests = { new MyClass {Assortment = new byte[] {1,3,40,2,9,4,7,5,8,47,45,46,38,39,6} }};
var bulkResponse = await elasticClient.IndexManyAsync(requests, cancellationToken: cancellationToken);

Если я вручную создаю индекс и устанавливаю тип массива, я получаю следующие ошибки при сохранении:

System.AggregateException: One or more errors occurred. (Error while processing bulk request: Invalid NEST response built from a successful low level call on POST: /_bulk
# Invalid Bulk items:
  operation[0]: index returned 400 _index: blockchain _type: elasticrequest _id: eqa04WUByNd1edqilegT _version: 0 error: Type: mapper_parsing_exception Reason: "failed to parse [assortment]" CausedBy:
Type: illegal_argument_exception Reason: "For input string: "AQMoAgkEBwUILy0uJicG""
  operation[1]: index returned 400 _index: blockchain _type: elasticrequest _id: e6a04WUByNd1edqilegT _version: 0 error: Type: mapper_parsing_exception Reason: "failed to parse [assortment]" CausedBy:
Type: illegal_argument_exception Reason: "For input string: "AQMoAgkEBwUILy0uJicG""
  operation[2]: index returned 400 _index: blockchain _type: elasticrequest _id: fKa04WUByNd1edqilegT _version: 0 error: Type: mapper_parsing_exception Reason: "failed to parse [assortment]" CausedBy:
Type: illegal_argument_exception Reason: "For input string: "AQMoAgkEBwUILy0uJicG""

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

Я пробовал атрибуты Text / Number / Object, но они не работают.

...