Индексация и фильтрация в Elasticssearch с использованием NEST (HighLevelClient) без использования объектов POCO - PullRequest
1 голос
/ 12 марта 2020

Я использую ElasticHighLevelClient (NEST) для индексации данных из SQL БД. Проблема в том, что у меня нет доступа к объектам POCO, и мне нужно фильтровать эти данные. У объектов POCO есть вложенные поля, например

class Car{
public string Id { get; set; }
public string Name { get; set; }
public string Model { get; set; }
public List<Engine> Engines { get; set; }
public List<Wheel> Wheels {get; set;}
}


class Engine {
public string Id { get; set; }
public string EngineModel { get; set; }
public TypeEnum Type { get; set; }
public List<Maker> Makers { get; set; }
}

class Wheel {
public string Id { get; set; }
public string Name { get; set; }
} 

class Maker {
public string Id { get; set; }
public string CompanyName { get; set; }
}

Я нашел этот вопрос Массовое индексирование в Elasticssearch с использованием клиента ElasticLowLevelClient , но у меня есть несколько проблем с ним: 'PostData.PostData (строка) недоступна из-за уровня защиты. Я изменил его на new PostData.Serializable (string Json)) ; но у меня есть сообщение « не удается разрешить ошибку« Сериализуемый »».

Итак, кто-нибудь может мне помочь со следующими моментами:

1) Как я могу проиндексировать автомобиль объект, не имеющий доступа к объектам POCO?

2) Как настроить фильтрацию с вложенными объектами, например, для всех автомобилей, у которых есть Engine.Type = «petrol» и Engine.Maker = «ltd»?

Спасибо!

...