Grinnz / perldoc-browser

Perldoc Browser
https://perldoc.perl.org
Artistic License 2.0
55 stars 21 forks source link

Deprecation Warning for ElasticSearch 7.0 #44

Open bodo-hugo-barwich opened 2 years ago

bodo-hugo-barwich commented 2 years ago

When working on the Docker Cluster Deployment as described at Docker Deployment the ElasticSearch engine returned Deprecation Warnings for the Mapping Requests.

Currently the Web Site works with 6.X series of ElasticSearch but when running the indexation for ElasticSearch 6.8 the engine returned Deprecation Warnings for the Mapping Requests:

$ docker-compose exec web entrypoint.sh perldoc-browser.pl index all
# [...]
[2021-11-13 10:11:34.56742] [26] [warn] [DEPRECATION] [types removal] The parameter include_type_name should be explicitly specified in create index requests to prepare for 7.0. In 7.0 include_type_name will default to 'false', and requests are expected to omit the type name in mapping definitions. - In request: {body => {mappings => {"faqs_5.28.1" => {properties => {answer => {index_options => "offsets",type => "text"},perlfaq => {type => "keyword"},question => {fields => {text => {type => "text"}},type => "keyword"}}}},settings => {analysis => {analyzer => {default => {filter => ["subwords","english_stop","asciifolding","lowercase","english_stemmer"],tokenizer => "whitespace",type => "custom"}},filter => {english_stemmer => {language => "english",type => "stemmer"},english_stop => {ignore_case => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),stopwords => "_english_",type => "stop"},subwords => {catenate_all => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},preserve_original => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},type => "word_delimiter_graph"}},normalizer => {ci_ascii => {filter => ["asciifolding","lowercase"],type => "custom"}}},index => {number_of_shards => 1}}},ignore => [],method => "PUT",mime_type => "application/json",path => "/faqs_5.28.1_1636798290",qs => {},serialize => "std"}
[2021-11-13 10:11:35.13919] [26] [warn] [DEPRECATION] [types removal] The parameter include_type_name should be explicitly specified in create index requests to prepare for 7.0. In 7.0 include_type_name will default to 'false', and requests are expected to omit the type name in mapping definitions. - In request: {body => {mappings => {"pods_5.28.1" => {properties => {abstract => {type => "text"},contents => {index_options => "offsets",type => "text"},description => {type => "text"},name => {fields => {ci => {normalizer => "ci_ascii",type => "keyword"},text => {type => "text"}},type => "keyword"}}}},settings => {analysis => {analyzer => {default => {filter => ["subwords","english_stop","asciifolding","lowercase","english_stemmer"],tokenizer => "whitespace",type => "custom"}},filter => {english_stemmer => {language => "english",type => "stemmer"},english_stop => {ignore_case => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),stopwords => "_english_",type => "stop"},subwords => {catenate_all => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},preserve_original => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},type => "word_delimiter_graph"}},normalizer => {ci_ascii => {filter => ["asciifolding","lowercase"],type => "custom"}}},index => {number_of_shards => 1}}},ignore => [],method => "PUT",mime_type => "application/json",path => "/pods_5.28.1_1636798290",qs => {},serialize => "std"}
[2021-11-13 10:11:35.60701] [26] [warn] [DEPRECATION] [types removal] The parameter include_type_name should be explicitly specified in create index requests to prepare for 7.0. In 7.0 include_type_name will default to 'false', and requests are expected to omit the type name in mapping definitions. - In request: {body => {mappings => {"functions_5.28.1" => {properties => {description => {index_options => "offsets",type => "text"},name => {fields => {ci => {normalizer => "ci_ascii",type => "keyword"},text => {type => "text"}},type => "keyword"}}}},settings => {analysis => {analyzer => {default => {filter => ["subwords","english_stop","asciifolding","lowercase","english_stemmer"],tokenizer => "whitespace",type => "custom"}},filter => {english_stemmer => {language => "english",type => "stemmer"},english_stop => {ignore_case => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),stopwords => "_english_",type => "stop"},subwords => {catenate_all => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},preserve_original => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},type => "word_delimiter_graph"}},normalizer => {ci_ascii => {filter => ["asciifolding","lowercase"],type => "custom"}}},index => {number_of_shards => 1}}},ignore => [],method => "PUT",mime_type => "application/json",path => "/functions_5.28.1_1636798290",qs => {},serialize => "std"}
[2021-11-13 10:11:36.10819] [26] [warn] [DEPRECATION] [types removal] The parameter include_type_name should be explicitly specified in create index requests to prepare for 7.0. In 7.0 include_type_name will default to 'false', and requests are expected to omit the type name in mapping definitions. - In request: {body => {mappings => {"perldeltas_5.28.1" => {properties => {contents => {index_options => "offsets",type => "text"},heading => {fields => {text => {type => "text"}},type => "keyword"},perldelta => {type => "keyword"}}}},settings => {analysis => {analyzer => {default => {filter => ["subwords","english_stop","asciifolding","lowercase","english_stemmer"],tokenizer => "whitespace",type => "custom"}},filter => {english_stemmer => {language => "english",type => "stemmer"},english_stop => {ignore_case => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),stopwords => "_english_",type => "stop"},subwords => {catenate_all => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},preserve_original => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},type => "word_delimiter_graph"}},normalizer => {ci_ascii => {filter => ["asciifolding","lowercase"],type => "custom"}}},index => {number_of_shards => 1}}},ignore => [],method => "PUT",mime_type => "application/json",path => "/perldeltas_5.28.1_1636798290",qs => {},serialize => "std"}
[2021-11-13 10:11:36.62077] [26] [warn] [DEPRECATION] [types removal] The parameter include_type_name should be explicitly specified in create index requests to prepare for 7.0. In 7.0 include_type_name will default to 'false', and requests are expected to omit the type name in mapping definitions. - In request: {body => {mappings => {"variables_5.28.1" => {properties => {name => {fields => {ci => {normalizer => "ci_ascii",type => "keyword"}},type => "keyword"}}}},settings => {analysis => {analyzer => {default => {filter => ["subwords","english_stop","asciifolding","lowercase","english_stemmer"],tokenizer => "whitespace",type => "custom"}},filter => {english_stemmer => {language => "english",type => "stemmer"},english_stop => {ignore_case => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),stopwords => "_english_",type => "stop"},subwords => {catenate_all => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},preserve_original => $VAR1->{body}{settings}{analysis}{filter}{english_stop}{ignore_case},type => "word_delimiter_graph"}},normalizer => {ci_ascii => {filter => ["asciifolding","lowercase"],type => "custom"}}},index => {number_of_shards => 1}}},ignore => [],method => "PUT",mime_type => "application/json",path => "/variables_5.28.1_1636798290",qs => {},serialize => "std"}

This will be an obstacle when trying to upgrade the ElasticSearch Engine to 7.0 and newer.

bodo-hugo-barwich commented 2 years ago

This is especially important since the ElasticSearch 6.X series have reached End of Life on 2020-11-20 and are only maintained until ElasticSearch 8.0 according to the ElasticSearch End of Life policy documented at ElasticSearch End of Life policy

Grinnz commented 2 years ago

I agree, I hope to find some time next month to work on upgrading. It should not be too difficult.