The command bin/plugin
has been renamed to bin/elasticsearch-plugin
. The structure of the plugin ZIP archive has changed. All the plugin files must be contained in a top-level directory called elasticsearch
. If you use the gradle build, this structure is automatically generated.
bin/plugin
command는 bin/elasticsearch-plugin
으로 이름이 변경되었다. plugin ZIP archive의 구조가 변경되었다. 모든 plugin 파일은 elasticsearch
라는 최상위 directory에 있어야 한다. gradle build를 사용하면, 이 구조가 자동으로 생성된다.
Plugins isolationedit
isolated
option has been removed. Each plugin will have its own classloader.
isolated
option은 제거되었다. 각 plugin은 자신의 classloader를 가진다.
Site plugins removededit
Site plugins have been removed. Site plugins should be reimplemented as Kibana plugins.
site plugin이 제거되었다. site plugin은 kibana plugin으로 다시 구현되어야 한다.
Multicast plugin removededit
Multicast has been removed. Use unicast discovery, or one of the cloud discovery plugins.
multicast가 제거되었다. unicast discovery를 사용하거나 cloud discovery plugin을 사용하자.
Plugins with custom query implementationsedit
Plugins implementing custom queries need to implement the fromXContent(QueryParseContext)
method in their QueryParser
subclass rather than parse
. This method will take care of parsing the query from XContent
format into an intermediate query representation that can be streamed between the nodes in binary format, effectively the query object used in the java api. Also, the query builder needs to be registered as a NamedWriteable
. This is all done by implementing the SearchPlugin
interface and overriding the getQueries
method. The query object can then transform itself into a lucene query through the new toQuery(QueryShardContext)
method, which returns a lucene query to be executed on the data node.
사용자 정의 query를 구현하는 plugin은 parse
가 아닌 QueryParser
subclass에서fromXContent(QueryParseContext)
method를 구현해야 한다. 이 method는 XContent
format에서, Java API에서 효과적으로 사용되는 query object인 binary forma에서 node간 streamming이 될 수 있는 중간 query 표현으로, query를 parsing한다. 또한 query builder는 NamedWriteable
로 등록되어야 한다. 이것은 모두 SearchPlugin
interface를 구현하고 getQueries
method를 override함으로써 이루어진다. 그런 다음 query object는, data node에서 실행될 lucene query를 반환하는, 새로운 toQuery(QueryShardContext)
method를 통해 자체적으로 lucene query로 변환할 수 있다.
Similarly, plugins implementing custom score functions need to implement the fromXContent(QueryParseContext)
method in their ScoreFunctionParser
subclass rather than parse
. This method will take care of parsing the function from XContent
format into an intermediate function representation that can be streamed between the nodes in binary format, effectively the function object used in the java api. The function object can then transform itself into a lucene function through the new toFunction(QueryShardContext)
method, which returns a lucene function to be executed on the data node.
유사하게, 사용자 정의 score function를 구현하는 plugin은 parse
가 아닌 ScoreFunctionParser
subclass에서 fromXContent(QueryParseContext)
method를 구현해야 한다. 이 method는 XContent
format에서, Java API에서 효과적으로 사용되는 function object인 binary format에서 node간 streamming이 될 수 있는 중간 function 표현으로 function을 parsing한다. 그런 다음 function object는 새로운 toFunction(QueryShardContext)
method를 통해 자체적으로 lucene function으로 변환할 수 있다. 이 method는 data node에서 실행될 lucene function을 반환한다.
Cloud AWS plugin changesedit
Cloud AWS plugin has been split in two plugins:
Cloud AWS plugin은 2개의 plugin으로 분리되었다.
Proxy settings for both plugins have been renamed:
두 plugin을 위한 proxy setting은 이름이 변경되었다.
- from
cloud.aws.proxy_host
tocloud.aws.proxy.host
- from
cloud.aws.ec2.proxy_host
tocloud.aws.ec2.proxy.host
- from
cloud.aws.s3.proxy_host
tocloud.aws.s3.proxy.host
- from
cloud.aws.proxy_port
tocloud.aws.proxy.port
- from
cloud.aws.ec2.proxy_port
tocloud.aws.ec2.proxy.port
- from
cloud.aws.s3.proxy_port
tocloud.aws.s3.proxy.port
Cloud Azure plugin changesedit
Cloud Azure plugin has been split in three plugins:
Cloud Azure plugin은 3개의 plugin으로 분리되었다.
If you were using the cloud-azure
plugin for snapshot and restore, you had in elasticsearch.yml
:
snapshot과 restore에 cloud-azure
plugin을 사용하고 있다면, elasticsearch.yml
에 다음과 같은 설정이 있을 것이다.
cloud: azure: storage: account: your_azure_storage_account key: your_azure_storage_key
You need to give a unique id to the storage details now as you can define multiple storage accounts:
이제 여러 개의 storage account를 정의할 수 있으므로, storage 세부 정보에 unique id를 지정해야 한다.
cloud: azure: storage: my_account: account: your_azure_storage_account key: your_azure_storage_key
Cloud GCE plugin changesedit
Cloud GCE plugin has been renamed to Discovery GCE plugin.
Cloud GCE plugin은 Discovery GCE plugin으로 이름이 변경되었다.
Delete-By-Query plugin removededit
The Delete-By-Query plugin has been removed in favor of a new Delete By Query APIimplementation in core. It now supports throttling, retries and cancellation but no longer supports timeouts. Instead use the cancel API to cancel deletes that run too long.
Delete-By-Query plugin은 core에서 새로운 Delete By Query API 구현을 위해 제거되었다. 이제는 제한(throttling), 재시도(retry) 및 취소(cancel)를 지원하지만, 더 이상 timeout를 지원하지 않는다. 대신 cancel API를 사용하면, 너무 오래 실행되는 delete를 취소할 수 있다.
Mapper Attachments plugin deprecatededit
Mapper attachments has been deprecated. Users should use now the ingest-attachment
plugin.
mapper attachment는 deprecate되었다. 이제 ingest-attachment
plugin을 사용해야 한다.
Passing of Java System Propertiesedit
Previously, Java system properties could be passed to the plugin command by passing -D
style arguments directly to the plugin script. This is no longer permitted and such system properties must be passed via ES_JAVA_OPTS.
이전에는, -D
스타일의 argument를 plugin script에 직접 전달하여, Java system property를 plugin command에 전달할 수 있었다. 이것은 더 이상 허용되지 않으며, 그러한 system property는 ES_JAVA_OPTS를 통해 전달되어야 한다.
Custom plugins pathedit
The ability to specify a custom plugins path via path.plugins
has been removed.
path.plugins
를 통해 사용자 정의 plugin을 지정하는 기능이 제거되었다.
ScriptPluginedit
Plugins that register custom scripts should implement ScriptPlugin
and remove their onModule(ScriptModule)
implementation.
사용자 정의 script를 등록한 plugin은 ScriptPlugin
을 구현하고 onModule(ScriptModule)
구현을 제거해야 한다.
AnalysisPluginedit
Plugins that register custom analysis components should implement AnalysisPlugin
and remove their onModule(AnalysisModule)
implementation.
사용자 정의 analysis component을 등록한 plugin은 AnalysisPlugin
을 구현하고 onModule(AnalysisModule)
구현을 제거해야 한다.
MapperPluginedit
Plugins that register custom mappers should implement MapperPlugin
and remove their onModule(IndicesModule)
implementation.
사용자 정의 mapper를 등록한 plugin은 MapperPlugin
을 구현하고 onModule(IndicesModule)
구현을 제거해야 한다.
ActionPluginedit
Plugins that register custom actions should implement ActionPlugin
and remove their onModule(ActionModule)
implementation.
사용자 정의 action을 등록한 plugin은 ActionPlugin
을 구현하고 onModule(ActionModule)
구현을 제거해야 한다.
Plugins that register custom RestHandler`s should implement `ActionPlugin
and remove their onModule(NetworkModule)
implemnetation.
사용자 정의 RestHandler
을 등록한 plugin은 ActionPlugin
을 구현하고 onModule(NetworkModule)
구현을 제거해야 한다.
SearchPluginedit
Plugins that register custom search time behavior (Query
, Suggester
, ScoreFunction
, FetchSubPhase
, Highlighter
, etc) should implement SearchPlugin
and remove their onModule(SearchModule)
implementation.
사용자 정의 검색 시 동작((Query
, Suggester
, ScoreFunction
, FetchSubPhase
, Highlighter
등)을 등록한 plugin은 SearchPlugin
을 구현하고 onModule(SearchModule)
구현을 제거해야 한다.
SearchParseElementedit
The SearchParseElement
interface has been removed. Custom search request sections can only be provided under the ext
element. Plugins can plug in custom parsers for those additional sections by providing a SearchPlugin.SearchExtSpec
, which consists of a SearchExtParser
implementation that can parse`XContent` into a SearchExtBuilder
implementation. The parsing happens now in the coordinating node. The result of parsing is serialized to the data nodes through transport layer together with the rest of the search request and stored in the search context for later retrieval.
SearchParseElement
interface가 제거되었다. 사용자 정의 search request section은 ext
element 아래에만 제공될 수 있다. plugin은 XContent
를 SearchExtBuilder
구현으로 parsing할 수 있는 SearchExtParser
구현으로 구성된 SearchPlugin.SearchExtSpec
를 제공함으로써 추가 section을 위한 사용자 정의 parser에 plug in할 수 있다. parsing은 이제 coordinating node에서 발생한다. parsing의 결과는 나머지 search request과 함께 transport layer를 통해 data node에 직렬화되며, 이후 검색을 위해 search context에 저장된다.
Testing Custom Pluginsedit
ESIntegTestCase#pluginList
has been removed. Use Arrays.asList
instead. It isn’t needed now that all plugins require Java 1.8.
ESIntegTestCase#pluginList
는 제거되었다. 대신 Arrays.asList
를 사용하자. 이제 모든 plugin에 Java 1.8이 필요하지는 않다.
Mapper-Size pluginedit
The metadata field _size
is not accessible in aggregations, scripts and when sorting for indices created in 2.x. If these features are needed in your application it is required to reindex the data with Elasticsearch 5.x.
metadata field _size
는 aggregation, script 및 2.x 에서 생성된 indices를 정렬할 때 access할 수 없다. 이러한 기능이 application에 필요하면, Elasticsearch 5.x 로 데이터를 다시 index해야 한다.
'5.X > 8. Breaking Changes' 카테고리의 다른 글
v5.0-12. Java API changes (0) | 2017.10.22 |
---|---|
v5.0-13. Packaging (0) | 2017.10.22 |
v5.0-15. Filesystem related changes (0) | 2017.10.22 |
v5.0-16. Path to data on disk (0) | 2017.10.22 |
v5.0-17. Aggregation changes (0) | 2017.10.22 |