Задать вопрос
@Kostya10295

При наполнении данными Elasticsearch добавляет индекс к массиву как поле, как исправить?

Имеется индекс с таким маппингом:

{
                "amount": {
                    "type": "long"
                },
                "id": {
                    "type": "keyword"
                },
                "in_stock": {
                    "type": "boolean"
                },
                "locations": {
                    "type": "nested",
                    "properties": {
                        "district": {
                            "type": "integer"
                        },
                        "mart": {
                            "type": "integer"
                        },
                        "metro": {
                            "type": "integer"
                        },
                        "transport_stop": {
                            "type": "integer"
                        }
                    }
                },
                "name": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword"
                        }
                    },
                    "analyzer": "rebuilt_russian",
                    "search_analyzer": "rebuilt_search_russian"
                },
                "picture": {
                    "type": "text",
                    "index": false
                },
                "price": {
                    "type": "integer"
                },
                "product_numbers": {
                    "type": "text",
                    "analyzer": "product_numbers_analyzer"
                },
                "shop_id": {
                    "type": "long"
                },
                "sku": {
                    "type": "text"
                },
                "stocks": {
                    "type": "nested",
                    "properties": {
                        "amount": {
                            "type": "integer"
                        },
                        "city_id": {
                            "type": "integer"
                        },
                        "in_stock": {
                            "type": "boolean"
                        },
                        "location": {
                            "type": "geo_point"
                        },
                        "office_id": {
                            "type": "long"
                        }
                    }
                },
                "url": {
                    "type": "text",
                    "index": false
                },
                "wholesale_price": {
                    "type": "integer"
                }
            }


Но при наполнении данными в nested поле stocks появляются поля от 0 до 99, которые дублируют текущее поле

{
                "amount": {
                    "type": "long"
                },
                "id": {
                    "type": "keyword"
                },
                "in_stock": {
                    "type": "boolean"
                },
                "locations": {
                    "type": "nested",
                    "properties": {
                        "district": {
                            "type": "integer"
                        },
                        "mart": {
                            "type": "integer"
                        },
                        "metro": {
                            "type": "integer"
                        },
                        "transport_stop": {
                            "type": "integer"
                        }
                    }
                },
                "name": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword"
                        }
                    },
                    "analyzer": "rebuilt_russian",
                    "search_analyzer": "rebuilt_search_russian"
                },
                "picture": {
                    "type": "text",
                    "index": false
                },
                "price": {
                    "type": "integer"
                },
                "product_numbers": {
                    "type": "text",
                    "analyzer": "product_numbers_analyzer"
                },
                "shop_id": {
                    "type": "long"
                },
                "sku": {
                    "type": "text"
                },
                "stocks": {
                    "type": "nested",
                    "properties": {
                        "0": {
                            "properties": {
                                "amount": {
                                    "type": "long"
                                },
                                "city_id": {
                                    "type": "long"
                                },
                                "in_stock": {
                                    "type": "boolean"
                                },
                                "location": {
                                    "properties": {
                                        "lat": {
                                            "type": "text",
                                            "fields": {
                                                "keyword": {
                                                    "type": "keyword",
                                                    "ignore_above": 256
                                                }
                                            }
                                        },
                                        "lon": {
                                            "type": "text",
                                            "fields": {
                                                "keyword": {
                                                    "type": "keyword",
                                                    "ignore_above": 256
                                                }
                                            }
                                        }
                                    }
                                },
                                "office_id": {
                                    "type": "long"
                                }
                            }
                        },
                        "1": {
                            "properties": {
                                "amount": {
                                    "type": "long"
                                },
                                "city_id": {
                                    "type": "long"
                                },
                                "in_stock": {
                                    "type": "boolean"
                                },
                                "location": {
                                    "properties": {
                                        "lat": {
                                            "type": "text",
                                            "fields": {
                                                "keyword": {
                                                    "type": "keyword",
                                                    "ignore_above": 256
                                                }
                                            }
                                        },
                                        "lon": {
                                            "type": "text",
                                            "fields": {
                                                "keyword": {
                                                    "type": "keyword",
                                                    "ignore_above": 256
                                                }
                                            }
                                        }
                                    }
                                },
                                "office_id": {
                                    "type": "long"
                                }
                            }
                        },
                        "amount": {
                            "type": "integer"
                        },
                        "city_id": {
                            "type": "integer"
                        },
                        "in_stock": {
                            "type": "boolean"
                        },
                        "location": {
                            "type": "geo_point"
                        },
                        "office_id": {
                            "type": "long"
                        }
                    }
                },
                "url": {
                    "type": "text",
                    "index": false
                },
                "wholesale_price": {
                    "type": "integer"
                }
            }


Соответственно и результаты выдачи получаются некорректными, самое интересное что на локальном компьютере все ок. Подскажите в чем проблема или хотя бы в какую сторону копать
  • Вопрос задан
  • 81 просмотр
Подписаться 3 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы