[[breaking_20_index_api_changes]] === Index API changes ==== Index aliases Fields used in alias filters no longer have to exist in the mapping at alias creation time. Previously, alias filters were parsed at alias creation time and the parsed form was cached in memory. Now, alias filters are parsed at request time and the fields in filters are resolved from the current mapping. This also means that index aliases now support `has_parent` and `has_child` queries. The <> will now throw an exception if no matching aliases are found. This change brings the defaults for this API in line with the other Indices APIs. The <> options can be used on a request to change this behavior. ==== File based index templates Index templates can no longer be configured on disk. Use the <> API instead. ==== Analyze API changes The Analyze API now returns the the `position` of the first token as `0` instead of `1`. The `prefer_local` parameter has been removed. The `_analyze` API is a light operation and the caller shouldn't be concerned about whether it executes on the node that receives the request or another node. The `text()` method on `AnalyzeRequest` now returns `String[]` instead of `String`. ==== Removed `id_cache` from clear cache api The <> API no longer supports the `id_cache` option. Instead, use the `fielddata` option to clear the cache for the `_parent` field.