今までバージョン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.