Мы разрабатываем с использованием ElasticSearch. Мы создали два индекса: notificacionespush_anadirdispositivo, в котором хранятся устройства нового пользователя, и notificacionespush_crearnotificacion, в котором хранится информация, связанная с созданием нового уведомления.
Как мы можем настроить сервер ElasticSearch, чтобы принимать только те данные, которые имеют такую же структуру как определено сопоставлениями?
Отображения notificacionespush_anadirdispositivo:
{
"notificacionespush_anadirdispositivo": {
"mappings": {
"properties": {
"descripcionresultado": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"fechahora": {
"type": "date",
"format": "dd/MM/yyyy HH:mm:ss"
},
"idapp": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"iddispositivo": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"idioma": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"numexpediente": {
"type": "long"
},
"resultado": {
"type": "long"
},
"tiponotificacion": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"usuario": {
"type": "long"
}
}
}
}
}
Отображения push_crearnotificacion:
{
"notificacionespush_crearnotificacion": {
"mappings": {
"properties": {
"descripcionresultado": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"fechahora": {
"type": "date",
"format": "dd/MM/yyyy HH:mm:ss"
},
"idapp": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"idioma": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"numexpediente": {
"type": "long"
},
"resultado": {
"type": "long"
},
"tiponotificacion": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
Нас интересует и интересует эта топи c, потому что мы обнаружили, что если мы отправим POST в индекс notificacionespush_anadirdispositivo с JSON, представляющим фрагмент информации, который имеет отображение notificacionespush_crearnotificacion, он принимается.
Итак, когда мы получим содержимое, мы получим см .:
{
"took": 513,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 4,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "notificacionespush_anadirdispositivo",
"_type": "_doc",
"_id": "gT1DnHABgf__-U4-DNkw",
"_score": 1.0,
"_source": {
"usuario": 665365335,
"iddispositivo": "SuperID",
"idapp": "miHistoria",
"fechahora": "02/03/2020 17:20:04",
"resultado": -2,
"descripcionresultado": "Ya existe ese dispositivo asociado al expediente con el que se pretende registrar"
}
},
{
"_index": "notificacionespush_anadirdispositivo",
"_type": "_doc",
"_id": "RD1EnHABgf__-U4-U9re",
"_score": 1.0,
"_source": {
"usuario": 11473564,
"iddispositivo": "PRE4283599e-4718-4482-8dd5-733c29156cc2",
"idapp": "miCitaPrevia",
"fechahora": "27/02/2020 16:27:14"
}
},
{
"_index": "notificacionespush_anadirdispositivo",
"_type": "_doc",
"_id": "wj1MnHABgf__-U4-h9ui",
"_score": 1.0,
"_source": {
"usuario": 11473564,
"iddispositivo": "PRE4283599e-4718-4482-8dd5-733c29156cc2",
"idapp": "miCitaPrevia",
"fechahora": "27/02/2020 16:27:14"
}
},
{
"_index": "notificacionespush_anadirdispositivo",
"_type": "_doc",
"_id": "Uj1lnHABgf__-U4-COAX",
"_score": 1.0,
"_source": {
"idapp": "5cf57b56-c3b4-4a0d-8938-4ac4466f93af",
"numexpediente": 123456789,
"idioma": "es",
"tiponotificacion": "citafuturaAP",
"fechahora": "20/02/2020 10:52:57",
"resultado": 0,
"descripcionresultado": "{\"id\":\"\",\"recipients\":0,\"errors\":[\"All included players are not subscribed\"]}"
}
}
]
}
}