今までバージョン1.xを使用していましたが、バージョン6.4にアップデートする予定です。 
現在このアップデートの作業中で、index templateを作成する際に、 
1.xのバージョンのindex templateがそのままでは使えないため、 
貴社のドキュメントを確認ながらstringをtextやkeywordに置き換えたりしてアップデート作業を進めているのですが、 
単純にstringをtextやkeywordに置き換えるだけではなくて、 
他にもelasticsearchのバージョンアップに伴って統廃合された機能があるようなので、 
今回このような形で質問させていただきました。 
例えば、バージョン1.xでは以下のようなindex templateが作成することで、 analyzed/not_analyzed が共存できました。
"field_name": {
  "index" : "analyzed",
  "type" : "string",
  "fields" : {
    "full" : {
      "index" : "not_analyzed",
      "type" : "string" 
    }
  }
}
 
バージョン6.xでは string 型のanalyzed/not_analyzed はそれぞれ text/keyword 型に置き換わったそうですが、バージョン6.xでこのtext/keyword 型が共存するフィールドは作成可能でしょうか? 
また、バージョン1.xからバージョン6.xに移行するにあたり、自動でindex templateを変換してくれるサービスはないのか教えていただきたいです。
             
            
               
               
               
            
            
           
          
            
              
                tsgkdt  
                (tsgkdt)
               
              
                  
                    December 25, 2018,  8:06am
                   
                   
              2 
               
             
            
              ご認識の通り、stringはtext( analyzeされるもの)、keyword(されないもの)に代わっています。
例えば 
field_nameをkuromojiでanalyzedしたものを格納し、 
field_name.keywordには、analyzedしないものを格納するようなイメージの場合は、以下のようになるかと思います。
"field_name": {
  "analyzer" : "kuromoji_analyzer",
  "type" : "text",
  "fields" : {
    "keyword" : {
       "type" : "keyword",
       "ignore_above" : 256
    }
  }
}
 
(analyzerでkuromojiを指定していますが、読みかえてください)
移行に関しては、アップグレードガイドが提供されていますが、さすがに1.xは古すぎて載ってませんでした。 
https://www.elastic.co/products/upgrade_guide 
Breaking Changeを追って理解していく必要があるんじゃないかと予想します。
             
            
               
               
              1 Like 
            
            
           
          
            
            
              
 tsgkdt:
 
kuromoji_analyzer
 
 
お返事ありがとうございます。 
kuromoji_analyzer のようなanalyzerの指定が必要になるとは今回初めて知りました。 
確かにに1.xは古すぎて中々検索しても出てこないので、苦労しました。 
早速、試してみようと思います。
             
            
               
               
               
            
            
           
          
            
              
                tsgkdt  
                (tsgkdt)
               
              
                  
                    December 25, 2018,  9:25am
                   
                   
              4 
               
             
            
              analyzerは必須項目ではないので、指定しないこともできます。 
なので、こういう形でも定義はできます。
"field_name": {
  "type" : "text",
  "fields" : {
    "keyword" : {
       "type" : "keyword",
       "ignore_above" : 256
    }
  }
}
 
その場合は、indexのデフォルトにされているものか、standardになるみたいですね。 
https://www.elastic.co/guide/en/elasticsearch/reference/6.5/analyzer.html 
フィールドの中に入るデータ、値と、それをどのようにanalyzeしたいのかによって、適切に選んでいただければよいと思います。
             
            
               
               
              1 Like 
            
            
           
          
            
            
              色々とありがとうございます。 
実際に試してみて適切なものを選ぼうと思います。
             
            
               
               
               
            
            
           
          
            
              
                system  
                (system)
                  Closed 
               
              
                  
                    January 22, 2019, 10:11am
                   
                   
              6 
               
             
            
              This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.