0

C#(NEST)のPoCoのCompanyNameのフィールドタイプを文字列からintに変更しました(テスト用)。まず、型のマッピングに反映されていないことです。まだそこに文字列が表示されています

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

しかし、CompanyName の整数値を保存することはできます。マーベルでも、データは int のように表示されます。

ES の前のドキュメント

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

フィールド タイプを int に変更した後に最後に保存されたドキュメント

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

文字列と int 値で問題なく検索していますが、文字列を保存しようとすると、CompanyName が 0 として表示されます (問題ありません)。しかし、なぜマッピングが正しく表示されないのでしょうか?

注 : インデックスは再作成しませんでした。既存のインデックスです

4

1 に答える 1

1

@Rob here およびthis SO questionで指摘されているように、ゼロダウンタイムでマッピングを変更すると、これが完全に説明されます。

デフォルト マッピング動的マッピング、特に動的テンプレートについて読むことを強くお勧めします。これは、コードを属性やマッピング コードからきれいに保ち、poco を poco にするのに本当に役立つことがわかりました。

于 2015-05-14T10:50:46.117 に答える