У меня есть json, где у меня есть несколько моделей и вариантов для автомобиля, и теперь нам нужно динамически создать запрос в соответствии с запросом на модель автомобиля с соответствующим вариантом. У меня есть json ниже.
Я попытался создать запрос, но не знаю, как я буду обрабатывать динамически множественный запрос модели и варианта.
var response = _esclient.EsClient().Search<ClassName>(a => a
.Index("Test")
.Type("Testa")
.Query(q => q.Bool(b =>
b.Must(m => m.Bool(p => p.Should(should =>
should.Bool(sb => sb.Must(m3 => m3.Term(t => t.Field(classname => classname.model).Value(modelname)) m3 => m3.Term(t => t.Field(classname => classname.model).Value(varientName)))))), should => should.Bool(sb => sb.Must(m1 => m1.Term(c => c.Field(classname => classname.variant).Value(varientname)), m1 => m1.Term(c => c.Field(classname => classname.model).Value(modelname))))
)))))
Я создал выражение статически для двух моделей с соответствующим вариантом. но я хочу, чтобы это было динамически для любого количества моделей и связанных с ними моделей, потому что я понятия не имею, какая модель и связанный запрос варианта будут получены. Ожидаемый Json для модели 4 и соответствующий запрос варианта. Он может быть увеличен или уменьшен по запросу.
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"bool": {
"must": [
{
"term": {
"variant": "lxi"
}
},
{
"term": {
"model": "ritz"
}
}
]
}
},
{
"bool": {
"must": [
{
"term": {
"variant": "lxi"
}
},
{
"term": {
"model": "alto"
}
}
]
}
},
{
"bool": {
"must": [
{
"term": {
"variant": "lxi"
}
},
{
"term": {
"model": "omni"
}
}
]
}
},
{
"bool": {
"must": [
{
"term": {
"variant": "vxi"
}
},
{
"term": {
"model": "alto 800"
}
}
]
}
}
]
}
}
]
}
}
}