Изменить _mapping в Elastic Search показывает странное поведение

Я изменил тип поля CompanyName в PoCo в C# (NEST) со строки на int (только для тестирования). Во-первых, это не отражается в отображении типа. это все еще показывает строку там

    "properties": {
       "AddressNumber": {
          "type": "string"
       },
       "City": {
          "type": "string"
       },
       "CompanyName": {
          "type": "string"
       },
       "ContactName": {
          "type": "string"
       },

Но это позволяет мне сохранить целочисленное значение CompanyName. Также в marvel данные отображаются как int.

Предыдущий документ в ES

             {  "CompanyName": "1231",
               "ContactName": "sdfsdf",
               "City": "Schenectady"
             }

Последний сохраненный документ после изменения типа поля на int

                 { "CompanyName": 1231,
                   "ContactName": "shivang",
                   "City": "Leeds"
                 }

Он хорошо работает со значениями string и int. Если мы попытаемся сохранить в нем некоторую строку, он покажет CompanyName как 0 (что нормально). Но почему это не показывает отображение правильно?

ПРИМЕЧАНИЕ: я не воссоздал индекс. Это существующий индекс

1 ответ

Изменение сопоставления с нулевым временем простоя объяснит это полностью, как указано @Rob здесь и в этом вопросе SO.

Я настоятельно рекомендую ознакомиться с отображением по умолчанию, динамическим отображением и особенно динамическими шаблонами. Я считаю, что это действительно помогает мне сохранить мой код в чистоте от атрибутов или кода сопоставления, и пусть мое poco будет poco!

Другие вопросы по тегам