В настоящее время у меня есть индекс эластичного поиска с полем, которое имеет подполя, например, A, B, C, как показано ниже:
"myfield":{
"A":{
"name":"A",
"prop1":{
"sub-prop1":1,
"sub-prop2":2
},
"prop2":{}
},
"B":{
"name":"B",
"prop1":{
"sub-prop1":3,
"sub-prop2":8,
"sub-prop3":4,
"sub-prop4":7,
},
"prop2":{}
},
"C":{}
}
Как видно, структура полей A и B одинакова,но подпроцессы под prop1 могут быть динамическими, то есть, основываясь на добавленных документах, отображение может измениться, но это не проблема, поскольку A и B существуют как отдельные ключи. Однако из-за этого я сталкиваюсь с другой проблемой, заключающейся в том, чтопродолжая добавлять новые документы, благодаря динамическому отображению, возможно, что такие подпроппели или подполя, как A, B, C, D ... и т. д. продолжают добавляться в отображение, что, в свою очередь, может привести к отображениюпревышать index.mapping.total_fields.limit , чтобы избежать того, что я планирую сделать поля "myfield" и "prop1" массивом объектов вместо этого в отображении, чтобы поля A, B, C ... хранятся как элементы массива, а не добавляются к отображению как новые поля.
Вопрос в том, является ли это возможным решением и как искать, скажем, "myfield.A.prop1.sub-prop1 "> = 3
новое отображение выглядит примерно так:
"myfield":[
{
"name":"A",
"prop1":{
"sub-prop1":1,
"sub-prop2":2
},
"prop2":{}
},
{
"name":"B",
"prop1":{
"sub-prop1":3,
"sub-prop2":8,
"sub-prop3":4,
"sub-prop4":7,
},
"prop2":{}
},
{}
]