Search...Indices(3pm)
β¨ NAME β¨
Search::Elasticsearch::Client::7_0::Direct::Indices β bestie, it's a client for running index-level requests. that's the whole vibe, no cap.
πΈ VERSION πΈ
version 7.715
π¦ DESCRIPTION π¦
okay so this module is your group chat for index-level requests β creating and deleting indices, managing type mappings, index settings, index templates and aliases. all of it, all the index admin energy. π
It does Search::Elasticsearch::Role::Client::Direct. (iykyk)
π INDEX METHODS π
π create()
$result = $e->indices->create(
index => 'my_index' # required
body => { # optional
index settings
mappings
aliases
}
);
The create() method makes you a whole new index. and if you're feeling extra, you can pile on index settings, type mappings, and aliases at the exact same time. iconic behavior honestly. β¨
Query string parameters:
error_tracehumaninclude_type_namemaster_timeouttimeoutupdate_all_typeswait_for_active_shards
See the create index docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html for more information.
π¦ get()
$response = $e->indices->get(
index => 'index' | \@indices # required
);
Hands you back the aliases, settings, and mappings for whichever indices you asked about. the full receipts. π§Ύ
See the get index docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html.
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardsflat_settingshumanignore_unavailableinclude_defaultsinclude_type_namelocalmaster_timeout
π exists()
$bool = $e->indices->exists(
index => 'index' | \@indices # required
);
The exists() method gives you back 1 or the empty string, telling you whether that index (or those indices) exist or not. simple yes/no energy. π«Ά
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardsflat_settingshumanignore_unavailableinclude_defaultslocal
See the index exists docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-indices-exists.html for more information.
π delete()
$response = $e->indices->delete(
index => 'index' | \@indices # required
);
The delete() method deletes the indices you point at. poof. gone. be careful bestie, this one does not un-happen. π
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailablemaster_timeouttimeout
See the delete index docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html for more information.
π close()
$response = $e->indices->close(
index => 'index' | \@indices # required
);
The close() method closes the specified indices. it's giving low resource usage, but the best part is they can be reopened later. it's not a delete, it's a nap. π΄
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailablemaster_timeouttimeout
See the close index docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-open-close.html for more information.
βοΈ open()
$response = $e->indices->open(
index => 'index' | \@indices # required
);
The open() method opens closed indices back up. nap time is over, we're awake and thriving. π
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailablemaster_timeouttimeoutwait_for_active_shards
See the open index docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-open-close.html for more information.
π rollover()
$response = $e->indices->rollover(
alias => $alias, # required
new_index => $index, # optional
body => { rollover conditions } # optional
);
Rolls an index pointed to by alias over to a new index name, but only if it meets the rollover conditions (eg max age, max docs). it's the "new year new me" of indices. β¨
Query string parameters:
dry_runerror_tracehumaninclude_type_namemaster_timeouttimeoutwait_for_active_shards
See the rollover index docs https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-rollover-index.html for more information.
π«Έ shrink()
$response = $e->shrink(
index => $index, # required
target => $target, # required
body => { mappings, settings aliases } # optional
);
The shrink API shrinks the shards of an index down to a single shard (or down to a factor of the original shards). little tiny shards, so cute. π₯Ί
Query string parameters:
copy_settingserror_tracefilter_pathhumanmaster_timeouttimeoutwait_for_active_shards
See the shrink index docs https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shrink-index.html for more information.
π«· split()
$response = $e->split(
index => $index, # required
target => $target, # required
);
The split API splits a shard into multiple shards. one becomes many, the reverse of shrinking, we love a glow-up arc. π¦
Query string parameters:
copy_settingserror_tracefilter_pathhumanmaster_timeouttimeoutwait_for_active_shards
See the split index docs https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-split-index.html for more information.
π§ freeze()
$response = $e->indices->freeze(
$index => $index # required
);
The freeze() API freezes an index, which puts it into a state that has almost no overhead on the cluster. it's giving "quiet luxury". π€«
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardsfilter_pathhumanignore_unavailablemaster_timeouttimeoutwait_for_active_shards
See the freeze index docs https://www.elastic.co/guide/en/elasticsearch/reference/current/freeze-index-api.html for more information.
π₯ unfreeze()
$response = $e->indices->unfreeze(
$index => $index # required
);
The unfreeze() API brings a frozen index back to its normal state. the thaw. the comeback. π₯
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardsfilter_pathhumanignore_unavailablemaster_timeouttimeoutwait_for_active_shards
See the unfreeze index docs https://www.elastic.co/guide/en/elasticsearch/reference/current/freeze-index-api.html for more information.
π§Ή clear_cache()
$response = $e->indices->clear_cache(
index => 'index' | \@indices # optional
);
The clear_cache() method clears the in-memory filter, fielddata, or id cache for the specified indices. spring cleaning but make it elasticsearch. π§Ό
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardsfielddatafieldshumanignore_unavailablequeryrequest
See the clear_cache docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-clearcache.html for more information.
β¨ refresh()
$response = $e->indices->refresh(
index => 'index' | \@indices # optional
);
The refresh() method refreshes the specified indices (or all of them if you don't specify), letting recent changes become visible to search. and ngl, this whole thing normally just happens automatically once every second by default. you're just speeding up the timeline. β©
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailable
See the refresh index docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html for more information.
πΎ flush()
$response = $e->indices->flush(
index => 'index' | \@indices # optional
);
The flush() method makes the specified indices (or all indices) get written to disk with an fsync, and clears out the transaction log. again β this normally happens automatically, you're just doing it on purpose. π
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardsforcehumanignore_unavailablewait_if_ongoing
See the flush index docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-flush.html for more information.
π«Ά flush_synced()
$respnse = $e->indices->flush_synced(
index => 'index' | \@indices # optional
);
The flush_synced() method does a synchronised flush() on the primaries and replicas of all the specified indices. In other words, after flushing it tries to write a sync_id on the primaries and replicas to mark them as containing the same documents. During recovery, if a replica has the same sync_id as the primary, then it doesn't need to check whether the segment files on primary and replica are the same, and it can move on directly to just replaying the translog. This can greatly speed up recovery. πββοΈπ¨
Synced flushes happens automatically in the background on indices that have not received any writes for a while, but the flush_synced() method can be used to trigger this process manually, eg before shutting down. Any new commits immediately break the sync. π
See the flush synced docs http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-synced-flush.html for more information.
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailable
ποΈ forcemerge()
$response = $e->indices->forcemerge(
index => 'index' | \@indices # optional
);
The forcemerge() method rewrites all the data in an index into at most max_num_segments.
bestie this is a very heavy operation and should only be run with care, and only on indices that are no longer being updated. do not casually yolo this one. π
okay so the query string parameters for that forcemerge call are:
allow_no_indiceserror_traceexpand_wildcardsflushhumanignore_unavailablemax_num_segmentsonly_expunge_deletes
and if you wanna go deeper, the forcemerge docs live at <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html> π
get_upgrade()</p> β the "who needs a glow-up" check β¨
$response = $e->indices->get_upgrade(
index => 'index' | \@indices # optional
);
bestie, this one tells you which indices are overdue for an upgrade β like, which ones need the glow-up that upgrade() actually performs. it's the vibe check before the makeover. π
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailable
more deets in the upgrade docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-upgrade.html> π¦
upgrade() β actual glow-up time π
$response = $e->indices->upgrade(
index => 'index' | \@indices # optional
);
this method upgrades all the segments in the indices you point at, bringing them to the latest format. literally a whole new you, but for segments. β¨
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailableonly_ancient_segmentswait_for_completion
the upgrade docs are right here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-upgrade.html> πΈ
MAPPING METHODS π
put_mapping()
$response = $e->indices->put_mapping(
index => 'index' | \@indices # optional,
type => 'type', # optional
body => { mapping } # required
)
so put_mapping() creates or updates a type mapping on an index that already exists. important though β mapping updates can add new fields, but they can NOT overwrite or change fields that are already there. no takebacks, no editing, it's giving locked-in. π
for instance:
$response = $e->indices->put_mapping(
index => 'users',
type => 'user',
body => {
user => {
properties => {
name => { type => 'string' },
age => { type => 'integer' }
}
}
}
);
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailableinclude_type_namemaster_timeouttimeoutupdate_all_types
put_mapping docs, right this way <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html> π
get_mapping()
$result = $e->indices->get_mapping(
index => 'index' | \@indices # optional,
type => 'type' | \@types # optional
);
this one hands you back the type definitions for one, several, or literally all types across one, several, or all indices. the receipts for your mappings, basically. πβ¨
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailableinclude_type_namelocalmaster_timeout
get_mapping docs live here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html> π¦
get_field_mapping()
$result = $e->indices->get_field_mapping(
index => 'index' | \@indices # optional,
type => 'type' | \@types # optional,
fields => 'field' | \@fields # required
include_defaults => 0 | 1
);
this one is the hyper-specific version β it returns the field definitions for one, several, or all fields, in one, several, or all types and indices. it's giving microscope energy π¬π
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailableinclude_defaultsinclude_type_namelocal
the get_mapping docs are over here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-field-mapping.html> πΈ
exists_type()
$bool = $e->indices->exists_type(
index => 'index' | \@indices # required,
type => 'type' | \@types # required
);
this method checks whether all the types you named exist in all the indices you named, and it returns 1 or the empty string. like a yes/no but the no is just... nothing. silent treatment fr. π
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailablelocal
exists_type docs are right here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-types-exists.html> β¨
ALIAS METHODS π
update_aliases()
$response = $e->indices->update_aliases(
body => { actions } # required
);
so this one changes multiple index aliases atomically β adding and removing them in one single swoop. no half-finished chaos, it's all-or-nothing, main character efficiency. π
for instance:
$response = $e->indices->update_aliases(
body => {
actions => [
{ add => { alias => 'current', index => 'logs_2013_09' }},
{ remove => { alias => 'current', index => 'logs_2013_08' }}
]
}
);
Query string parameters:
error_tracehumanmaster_timeouttimeout
update_aliases docs, come thru <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html> π₯
put_alias()
$response = $e->indices->put_alias(
index => 'index' | \@indices, # required
name => 'alias', # required
body => { alias defn } # optional
);
creates an index alias. new nickname for your index, obsessed. β¨
for instance:
$response = $e->indices->put_alias(
index => 'my_index',
name => 'twitter',
body => {
filter => { term => { user_id => 'twitter' }}
}
);
Query string parameters:
error_tracehumanmaster_timeouttimeout
put_alias docs right here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html> π¦
get_alias()
$result = $e->indices->get_alias(
index => 'index' | \@indices, # optional
name => 'alias' | \@aliases # optional
);
this one returns the alias definitions for the aliases you asked for, in the indices you asked for. the alias lore, served fresh. ππ
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailablelocal
get_alias docs over here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html> πΈ
exists_alias()
$bool = $e->indices->exists_alias(
index => 'index' | \@indices, # optional
name => 'alias' | \@aliases # required
);
returns 1 or the empty string, depending on whether the aliases you named actually exist in the indices you named. do they exist? do they not? the suspense. π
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardshumanignore_unavailablelocal
exists_alias docs are here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html> β¨
delete_alias()
$response = $e->indices->delete_alias(
index => 'index' | \@indices # required,
name => 'alias' | \@aliases # required
);
deletes one or more aliases from one or more indices. rip to those nicknames, they served well π«Ά
Query string parameters:
error_tracehumanmaster_timeouttimeout
delete_alias docs live here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html> π
SETTINGS METHODS β
put_settings()
$response = $e->indices->put_settings(
index => 'index' | \@indices # optional
body => { settings }
);
sets the index settings for the indices you specify β or for all indices if you don't. for instance:
$response = $e->indices->put_settings(
body => {
"index.refresh_interval" => -1
}
);
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardsflat_settingshumanignore_unavailablemaster_timeoutpreserve_existingtimeout
put_settings docs right here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html> π₯
get_settings()
$result = $e->indices->get_settings(
index => 'index' | \@indices # optional
name => 'name' | \@names # optional
);
retrieves the index settings for the indices you named, or for all of them. the settings receipts, handed to you directly. π§Ύπ
Query string parameters:
allow_no_indiceserror_traceexpand_wildcardsflat_settingshumanignore_unavailableinclude_defaultslocalmaster_timeout
get_settings docs are over here <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-settings.html> πΈ
β¨ TEMPLATE METHODS β¨
π put_template()
$response = $e->indices->put_template(
name => 'template' # required
body => { template defn } # required
);
The put_template() method is your girl for creating or updating index templates β brand new one? updated glow-up? either way, slay. π
Query string parameters:
"create""error_trace""flat_settings""human""include_type_name""master_timeout""order""timeout"
See the put_template docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html> for more information. π¦
πΈ get_template()
$result = $e->indices->get_template(
name => 'template' | \@templates # optional
);
The get_template() method retrieves a named template β like, come here bestie, let me see you. π
Query string parameters:
"error_trace""flat_settings""human""include_type_name""local""master_timeout"
See the get_template docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html> for more information. β¨
π¦ exists_template()
$result = $e->indices->exists_template(
name => 'template' # optional
);
The exists_template() method checks whether the named template exists β vibe check, but for templates. π
Query string parameters:
"error_trace""flat_settings""human""local""master_timeout"
See the get_template docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html> for more information. π
π delete_template()
$response = $e->indices->delete_template(
name => 'template' # required
);
The delete_template() method deletes a named template. gone, bye, no notes. π
Query string parameters:
"error_trace""human""master_timeout""timeout""version""version_type"
See the delete_template docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html> for more information. π
π STATS METHODS π
π₯ stats()
$result = $e->indices->stats(
index => 'index' | \@indices # optional
metric => 'metric' | \@metrics # optional
);
The stats() method hands you statistical information about one, more or all indices. By default it's giving everything β all the metrics β but you can narrow it down by saying which metric you actually want. main character energy, but make it data. π
Allowed metrics are:
"_all","completion""docs","fielddata","filter_cache","flush","get","id_cache","indexing","merge","percolate","query_cache","refresh","request_cache","search","segments","store"
Query string parameters:
"completion_fields","error_trace","fielddata_fields","fields","groups","human","include_segment_file_sizes","level","types"
See the stats docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-stats.html> for more information. β
π recovery()
$result = $e->indices->recovery(
index => 'index' | \@indices # optional
);
Provides insight into on-going shard recoveries. like peeking behind the curtain while the shards are doing their little healing arc. π§
Query string parameters:
"active_only","detailed","error_trace","human"
See the recovery docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-recovery.html> for more information. π
π«Ά segments()
$result = $e->indices->segments(
index => 'index' | \@indices # optional
);
The segments() method is used to return information about the segments that an index contains. the receipts, basically. π§Ύ
Query string parameters:
"allow_no_indices","error_trace","expand_wildcards","human","ignore_unavailable","verbose"
See the segments docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-segments.html> for more information. πΈ
π shard_stores()
$result = $e->indices->shard_stores(
index => 'index' | \@indices # optional
);
The shard_stores() method is used to find out which nodes contain copies of which shards, whether the shards are allocated or not. literally who's holding what. πΊοΈ
Query string parameters:
"allow_no_indices","error_trace","expand_wildcards","human","ignore_unavailable","status"
See the shard_stores docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shards-stores.html> for more information. π
π QUERY AND ANALYSIS METHODS π
π§ analyze()
$result = $e->indices->analyze(
index => 'index' # optional,
body => 'text to analyze'
);
The analyze() method passes the text in the body through the specified analyzer, tokenizer or token filter β and those can be global, or tied to a particular index or field β then it hands back the tokens. Very useful for debugging analyzer configurations. ngl this one is so good for figuring out why your analyzer is acting up. π
Query string parameters:
"error_trace","human"
See the analyze docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-analyze.html> for more information. β¨
π validate_query()
$result = $e->indices->validate_query(
index => 'index' | \@indices, # optional
type => 'type' | \@types, # optional
body => { query }
);
The validate_query() method accepts a query in the body and checks whether the query is valid or not. It's at its most useful when explain is set to "true" β because then it includes an execution plan in the output. like, not just "yeah it's fine" but the whole why. π΅οΈ
Query string parameters:
"all_shards","allow_no_indices","analyze_wildcard","analyzer","default_operator","df","error_trace","explain","expand_wildcards","ignore_unavailable","lenient","q","rewrite"
See the validate_query docs <http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-validate.html> for more information. π₯
π AUTHOR π
Enrico Zimuel <enrico.zimuel@elastic.co> β icon behavior, fr fr. π«Ά
π COPYRIGHT AND LICENSE π
This software is Copyright (c) 2021 by Elasticsearch BV.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
okay bestie that's the whole page, we made it to the end and honestly? we ate. π
β¨ this was Search...Indices(3pm) from the Perl v5.32.1 era, dated 2021-10-23, courtesy of the User Contributed Perl Documentation crew. go forth and index responsibly, ily πππ¦
π¦ where this page comes from
- ubuntu jammy: libsearch-elasticsearch-perl 7.715-1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms