- Elasticsearch Guide: other versions:
- Getting Started
- Setup Elasticsearch
- Breaking changes
- Breaking changes in 5.4
- Breaking changes in 5.3
- Breaking changes in 5.2
- Breaking changes in 5.1
- Breaking changes in 5.0
- Search and Query DSL changes
- Mapping changes
- Percolator changes
- Suggester changes
- Index APIs changes
- Document API changes
- Settings changes
- Allocation changes
- HTTP changes
- REST API changes
- CAT API changes
- Java API changes
- Packaging
- Plugin changes
- Filesystem related changes
- Path to data on disk
- Aggregation changes
- Script related changes
- API Conventions
- Document APIs
- Search APIs
- Aggregations
- Metrics Aggregations
- Avg Aggregation
- Cardinality Aggregation
- Extended Stats Aggregation
- Geo Bounds Aggregation
- Geo Centroid Aggregation
- Max Aggregation
- Min Aggregation
- Percentiles Aggregation
- Percentile Ranks Aggregation
- Scripted Metric Aggregation
- Stats Aggregation
- Sum Aggregation
- Top hits Aggregation
- Value Count Aggregation
- Bucket Aggregations
- Adjacency Matrix Aggregation
- Children Aggregation
- Date Histogram Aggregation
- Date Range Aggregation
- Diversified Sampler Aggregation
- Filter Aggregation
- Filters Aggregation
- Geo Distance Aggregation
- GeoHash grid Aggregation
- Global Aggregation
- Histogram Aggregation
- IP Range Aggregation
- Missing Aggregation
- Nested Aggregation
- Range Aggregation
- Reverse nested Aggregation
- Sampler Aggregation
- Significant Terms Aggregation
- Terms Aggregation
- Pipeline Aggregations
- Avg Bucket Aggregation
- Derivative Aggregation
- Max Bucket Aggregation
- Min Bucket Aggregation
- Sum Bucket Aggregation
- Stats Bucket Aggregation
- Extended Stats Bucket Aggregation
- Percentiles Bucket Aggregation
- Moving Average Aggregation
- Cumulative Sum Aggregation
- Bucket Script Aggregation
- Bucket Selector Aggregation
- Serial Differencing Aggregation
- Matrix Aggregations
- Caching heavy aggregations
- Returning only aggregation results
- Aggregation Metadata
- Returning the type of the aggregation
- Metrics Aggregations
- Indices APIs
- Create Index
- Delete Index
- Get Index
- Indices Exists
- Open / Close Index API
- Shrink Index
- Rollover Index
- Put Mapping
- Get Mapping
- Get Field Mapping
- Types Exists
- Index Aliases
- Update Indices Settings
- Get Settings
- Analyze
- Index Templates
- Shadow replica indices
- Indices Stats
- Indices Segments
- Indices Recovery
- Indices Shard Stores
- Clear Cache
- Flush
- Refresh
- Force Merge
- cat APIs
- Cluster APIs
- Query DSL
- Mapping
- Analysis
- Anatomy of an analyzer
- Testing analyzers
- Analyzers
- Normalizers
- Tokenizers
- Token Filters
- Standard Token Filter
- ASCII Folding Token Filter
- Flatten Graph Token Filter
- Length Token Filter
- Lowercase Token Filter
- Uppercase Token Filter
- NGram Token Filter
- Edge NGram Token Filter
- Porter Stem Token Filter
- Shingle Token Filter
- Stop Token Filter
- Word Delimiter Token Filter
- Word Delimiter Graph Token Filter
- Stemmer Token Filter
- Stemmer Override Token Filter
- Keyword Marker Token Filter
- Keyword Repeat Token Filter
- KStem Token Filter
- Snowball Token Filter
- Phonetic Token Filter
- Synonym Token Filter
- Synonym Graph Token Filter
- Compound Word Token Filters
- Reverse Token Filter
- Elision Token Filter
- Truncate Token Filter
- Unique Token Filter
- Pattern Capture Token Filter
- Pattern Replace Token Filter
- Trim Token Filter
- Limit Token Count Token Filter
- Hunspell Token Filter
- Common Grams Token Filter
- Normalization Token Filter
- CJK Width Token Filter
- CJK Bigram Token Filter
- Delimited Payload Token Filter
- Keep Words Token Filter
- Keep Types Token Filter
- Classic Token Filter
- Apostrophe Token Filter
- Decimal Digit Token Filter
- Fingerprint Token Filter
- Minhash Token Filter
- Character Filters
- Modules
- Index Modules
- Ingest Node
- Pipeline Definition
- Ingest APIs
- Accessing Data in Pipelines
- Handling Failures in Pipelines
- Processors
- Append Processor
- Convert Processor
- Date Processor
- Date Index Name Processor
- Fail Processor
- Foreach Processor
- Grok Processor
- Gsub Processor
- Join Processor
- JSON Processor
- KV Processor
- Lowercase Processor
- Remove Processor
- Rename Processor
- Script Processor
- Set Processor
- Split Processor
- Sort Processor
- Trim Processor
- Uppercase Processor
- Dot Expander Processor
- How To
- Testing
- Glossary of terms
- Release Notes
- 5.4.3 Release Notes
- 5.4.2 Release Notes
- 5.4.1 Release Notes
- 5.4.0 Release Notes
- 5.3.3 Release Notes
- 5.3.2 Release Notes
- 5.3.1 Release Notes
- 5.3.0 Release Notes
- 5.2.2 Release Notes
- 5.2.1 Release Notes
- 5.2.0 Release Notes
- 5.1.2 Release Notes
- 5.1.1 Release Notes
- 5.1.0 Release Notes
- 5.0.2 Release Notes
- 5.0.1 Release Notes
- 5.0.0 Combined Release Notes
- 5.0.0 GA Release Notes
- 5.0.0-rc1 Release Notes
- 5.0.0-beta1 Release Notes
- 5.0.0-alpha5 Release Notes
- 5.0.0-alpha4 Release Notes
- 5.0.0-alpha3 Release Notes
- 5.0.0-alpha2 Release Notes
- 5.0.0-alpha1 Release Notes
- 5.0.0-alpha1 Release Notes (Changes previously released in 2.x)
- Painless API Reference
WARNING: Version 5.4 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Plugin changes
editPlugin changes
editThe 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.
Plugins isolation
editisolated
option has been removed. Each plugin will have its own classloader.
Site plugins removed
editSite plugins have been removed. Site plugins should be reimplemented as Kibana plugins.
Multicast plugin removed
editMulticast has been removed. Use unicast discovery, or one of the cloud discovery plugins.
Plugins with custom query implementations
editPlugins 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.
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.
Cloud AWS plugin changes
editCloud AWS plugin has been split in two plugins:
Proxy settings for both plugins have been renamed:
-
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 changes
editCloud Azure plugin has been split in three plugins:
If you were using the cloud-azure
plugin for snapshot and restore, you had in 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:
cloud: azure: storage: my_account: account: your_azure_storage_account key: your_azure_storage_key
Cloud GCE plugin changes
editCloud GCE plugin has been renamed to Discovery GCE plugin.
Delete-By-Query plugin removed
editThe Delete-By-Query plugin has been removed in favor of a new Delete By Query API implementation 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.
Mapper Attachments plugin deprecated
editMapper attachments has been deprecated. Users should use now the ingest-attachment
plugin.
Passing of Java System Properties
editPreviously, 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.
Custom plugins path
editThe ability to specify a custom plugins path via path.plugins
has
been removed.
ScriptPlugin
editPlugins that register custom scripts should implement ScriptPlugin
and remove
their onModule(ScriptModule)
implementation.
AnalysisPlugin
editPlugins that register custom analysis components should implement
AnalysisPlugin
and remove their onModule(AnalysisModule)
implementation.
MapperPlugin
editPlugins that register custom mappers should implement
MapperPlugin
and remove their onModule(IndicesModule)
implementation.
ActionPlugin
editPlugins that register custom actions should implement ActionPlugin
and
remove their onModule(ActionModule)
implementation.
Plugins that register custom RestHandler`s should implement `ActionPlugin
and
remove their onModule(NetworkModule)
implemnetation.
SearchPlugin
editPlugins that register custom search time behavior (Query
, Suggester
,
ScoreFunction
, FetchSubPhase
, Highlighter
, etc) should implement
SearchPlugin
and remove their onModule(SearchModule)
implementation.
SearchParseElement
editThe 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.
Testing Custom Plugins
editESIntegTestCase#pluginList
has been removed. Use Arrays.asList
instead. It
isn’t needed now that all plugins require Java 1.8.
Mapper-Size plugin
editThe 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.
On this page
- Plugins isolation
- Site plugins removed
- Multicast plugin removed
- Plugins with custom query implementations
- Cloud AWS plugin changes
- Cloud Azure plugin changes
- Cloud GCE plugin changes
- Delete-By-Query plugin removed
- Mapper Attachments plugin deprecated
- Passing of Java System Properties
- Custom plugins path
- ScriptPlugin
- AnalysisPlugin
- MapperPlugin
- ActionPlugin
- SearchPlugin
- SearchParseElement
- Testing Custom Plugins
- Mapper-Size plugin