Elastics exposes the full elasticsearch API as own class methods. You will need to use them directly only for advanced usage, however Elastics uses them internally and creates them with just a few lines of yaml. Indeed they are just generated by Generic Templates (see Elastics Generic Templates).
The naming of these methods tries to conform with the original elasticsearch documentation, and adds a few aliases for convenience.
As any template-generated method, they accept a list of variables (hashes) for interpolation (see Variables and Interpolation). This documentation reports the underlying templates and the usage examples complete with all the accepted variable, for completeness. Please, notice that you can omit variables that have defaults.
  
    | Index API | 
  
    | Elastics.store | 
        Template
       store:
- PUT
- "/<<index>>/<<type>>/<<id>>"
        Usage
       Elastics.store :id    => id,   # required
               :type  => nil,  
               :index => nil
        You must pass the :datavariable. 
        Aliases
       put_store | 
  
    | Elastics.post_store | 
        Template
       post_store:
- POST
- "/<<index>>/<<type>>"
        Usage
       Elastics.post_store :index => nil,  
                    :type  => nil
        The id is assigned by elasticsearch; you must pass the :datavariable. 
        Aliases
       put_store | 
  
    | Get API | 
  
    | Elastics.get | 
        Template
       get:
- GET
- "/<<index>>/<<type>>/<<id>>"
        Usage
       Elastics.get :id    => id,   # required
             :type  => nil,  
             :index => nil
 | 
  
    | Elastics.get_source | 
        Template
       get_source:
- GET
- "/<<index>>/<<type>>/<<id>>/_source"
        Usage
       Elastics.get_source :id    => id,   # required
                    :type  => nil,  
                    :index => nil
 | 
  
    | Delete API | 
  
    | Elastics.delete | 
        Template
       delete:
- DELETE
- "/<<index>>/<<type>>/<<id>>"
        Usage
       Elastics.delete :id    => id,   # required
                :type  => nil,  
                :index => nil
        You must pass the :datavariable. 
        Aliases
       remove | 
  
    | Update API | 
  
    | Elastics.update | 
        Template
       update:
- POST
- "/<<index>>/<<type>>/<<id>>/_update"
        Usage
       Elastics.update :id    => id,   # required
                :type  => nil,  
                :index => nil
        You must pass script or doc and the other options as the :datavariable. | 
  
    | Multi Get API | 
  
    | Elastics.multi_get_ids | 
        Template
       multi_get_ids:
- GET
- "/<<index>>/<<type>>/_mget"
- ids: "<< ids >>"
        Usage
       Elastics.multi_get_ids :ids   => ids,  # required
                       :type  => nil,  
                       :index => nil
        You must pass the :idsarray. 
        Aliases
       multi_get | 
  
    | Elastics.multi_get_docs | 
        Template
       multi_get_docs:
- GET
- "/<<index>>/<<type>>/_mget"
- docs: "<< docs >>"
        Usage
       Elastics.multi_get_docs :docs  => docs,  # required
                        :type  => nil,   
                        :index => nil
        You must pass the :docsarray. 
        Aliases
       multi_get | 
  
    | Bulk API | 
  
    | Elastics.post_bulk_string | 
        Template
       post_bulk_string:
- POST
- "/_bulk"
- "<< bulk_string >>"
        Usage
       Elastics.post_bulk_string :bulk_string => bulk_string  # required
        You must pass the :docsarray. 
        Aliases
       bulk | 
  
    | Term Vectors | 
  
    | Elastics.termvector | 
        Template
       termvector:
- POST
- "/<<index>>/<<type>>/<<id>>/_termvector"
        Usage
       Elastics.termvector :id    => id,   # required
                    :type  => nil,  
                    :index => nil
        You must pass the options as the :datavariable. | 
  
    | Multi Termvectors API | 
  
    | Elastics.multi_termvectors | 
        Template
       multi_termvectors:
- POST
- "/<<index>>/<<type>>/_mtermvectors"
- docs: "<<docs= ~ >>"
        Usage
       Elastics.multi_termvectors :index => nil,  
                           :type  => nil,  
                           :docs  => nil
        You must pass the docs array as the :docsvariable or use the:datavariable for the simplified request. | 
  
    | Create Index | 
  
    | Elastics.put_index | 
        Template
       put_index:
- PUT
- "/<<index>>"
- settings:
    number_of_shards: "<<number_of_shards= 5 >>"
    number_of_replicas: "<<number_of_replicas= 1 >>"
        Usage
       Elastics.put_index :index              => nil,  
                   :number_of_shards   => 5,    
                   :number_of_replicas => 1
        You can also pass the complete data structure as :datavariable, so passing settings, mappings, warmers, aliases, ... 
        Aliases
       create_index | 
  
    | Elastics.post_index | 
        Template
       post_index:
- POST
- "/<<index>>"
- settings:
    number_of_shards: "<<number_of_shards= 5 >>"
    number_of_replicas: "<<number_of_replicas= 1 >>"
        Usage
       Elastics.post_index :index              => nil,  
                    :number_of_shards   => 5,    
                    :number_of_replicas => 1
        You can also pass the complete data structure as :datavariable, so passing settings, mappings, warmers, aliases, ... 
        Aliases
       create_index | 
  
    | Delete Index | 
  
    | Elastics.delete_index | 
        Template
       delete_index:
- DELETE
- "/<<index>>"
        Usage
       Elastics.delete_index :index => nil
 | 
  
    | Get Index | 
  
    | Elastics.get_index | 
        Template
       get_index:
- GET
- "/<<index>>/<<features= ~ >>"
        Usage
       Elastics.get_index :index    => nil,  
                   :features => nil
 | 
  
    | Indices Exists | 
  
    | Elastics.indices_exists | 
        Template
       indices_exists:
- HEAD
- "/<<index>>"
        Usage
       Elastics.indices_exists :index => nil
        Aliases
       index_existsexist? | 
  
    | Open/Close Index | 
  
    | Elastics.close_index | 
        Template
       close_index:
- POST
- "/<<index>>/_close"
        Usage
       Elastics.close_index :index => nil
 | 
  
    | Elastics.open_index | 
        Template
       open_index:
- POST
- "/<<index>>/_open"
        Usage
       Elastics.open_index :index => nil
 | 
  
    | Put Mappings | 
  
    | Elastics.put_index_mapping | 
        Template
       put_index_mapping:
- PUT
- "/<<index>>/_mapping/<<type>>"
- "<<type>>":
    properties: "<<properties>>"
        Usage
       Elastics.put_index_mapping :properties => properties,  # required
                           :type       => nil,         
                           :index      => nil
        Aliases
       put_mappings | 
  
    | Get Mappings | 
  
    | Elastics.get_index_mapping | 
        Template
       get_index_mapping:
- GET
- "/<<index>>/_mapping/<<type>>"
        Usage
       Elastics.get_index_mapping :index => nil,  
                           :type  => nil
 | 
  
    | Get Field Mappings | 
  
    | Elastics.get_field_mapping | 
        Template
       get_field_mapping:
- GET
- "/<<index>>/_mapping/<<type>>/field/<<field>>"
        Usage
       Elastics.get_field_mapping :field => field,  # required
                           :type  => nil,    
                           :index => nil
 | 
  
    | Types Exists | 
  
    | Elastics.types_exists | 
        Template
       types_exists:
- HEAD
- "/<<index>>/<<type>>"
        Usage
       Elastics.types_exists :index => nil,  
                      :type  => nil
        Aliases
       type_exists | 
  
    | Delete Mappings | 
  
    | Elastics.delete_index_mapping | 
        Template
       delete_index_mapping:
- DELETE
- "/<<index>>/<<type>>"
        Usage
       Elastics.delete_index_mapping :index => nil,  
                              :type  => nil
 | 
  
    | Index Aliases | 
  
    | Elastics.get_index_aliases | 
        Template
       get_index_aliases:
- GET
- "/<<index>>/_aliases"
        Usage
       Elastics.get_index_aliases :index => nil
 | 
  
    | Elastics.post_index_aliases | 
        Template
       post_index_aliases:
- POST
- "/_aliases"
- actions: "<<actions>>"
        Usage
       Elastics.post_index_aliases :actions => actions  # required
        This is the generic interface allowing all the options. You can pass the :actionsarray or the aliases API structure as the:datavariable. | 
  
    | Elastics.delete_index_alias | 
        Template
       delete_index_alias:
- DELETE
- "/<<index>>/_alias/<<alias>>"
        Usage
       Elastics.delete_index_alias :alias => alias,  # required
                            :index => nil
 | 
  
    | Elastics.get_index_alias | 
        Template
       get_index_alias:
- GET
- "/<<index>>/_alias/<<alias= '*' >>"
        Usage
       Elastics.get_index_alias :index => nil,  
                         :alias => "*"
 | 
  
    | Elastics.put_index_alias | 
        Template
       put_index_alias:
- PUT
- "/<<index>>/_alias/<<alias>>"
        Usage
       Elastics.put_index_alias :alias => alias,  # required
                         :index => nil
        This is the single index alias. You can pass other options as the :datavariable. | 
  
    | Update Indices Settings | 
  
    | Elastics.update_index_settings | 
        Template
       update_index_settings:
- PUT
- "/<<index>>/_settings"
        Usage
       Elastics.update_index_settings :index => nil
        You can pass the settings structure as the :datavariable. 
        Aliases
       put_index_settings | 
  
    | Get Indices Settings | 
  
    | Elastics.get_index_settings | 
        Template
       get_index_settings:
- GET
- "/<<index>>/_settings"
        Usage
       Elastics.get_index_settings :index => nil
        Aliases
       get_settings | 
  
    | Analyze | 
  
    | Elastics.analyze_index | 
        Template
       analyze_index:
- GET
- "/<<index>>/_analyze"
        Usage
       Elastics.analyze_index :index => nil
        You can pass the text to analyze as the :datavariable (or the param:text). You can pass the parameters as the:paramsvariable. | 
  
    | Index Templates | 
  
    | Elastics.delete_index_template | 
        Template
       delete_index_template:
- DELETE
- "/_template/<<template>>"
        Usage
       Elastics.delete_index_template :template => template  # required
 | 
  
    | Elastics.get_index_template | 
        Template
       get_index_template:
- GET
- "/_template/<<template= ~ >>"
        Usage
       Elastics.get_index_template :template => nil
 | 
  
    | Elastics.index_template_exists | 
        Template
       index_template_exists:
- HEAD
- "/_template/<<template>>"
        Usage
       Elastics.index_template_exists :template => template  # required
 | 
  
    | Elastics.put_index_template | 
        Template
       put_index_template:
- PUT
- "/_template/<<template>>"
        Usage
       Elastics.put_index_template :template => template  # required
        You must pass the template structure as the :datavariable. | 
  
    | Warmers | 
  
    | Elastics.delete_index_warmer | 
        Template
       delete_index_warmer:
- DELETE
- "/<<index>>/_warmer/<<warmer>>"
        Usage
       Elastics.delete_index_warmer :warmer => warmer,  # required
                             :index  => nil
 | 
  
    | Elastics.put_index_warmer | 
        Template
       put_index_warmer:
- PUT
- "/<<index>>/<<type>>/_warmer/<<warmer>>"
        Usage
       Elastics.put_index_warmer :warmer => warmer,  # required
                          :type   => nil,     
                          :index  => nil
        You must pass the warmer structure as the :datavariable. | 
  
    | Elastics.get_index_warmer | 
        Template
       get_index_warmer:
- GET
- "/<<index>>/_warmer/<<warmer= ~ >>"
        Usage
       Elastics.get_index_warmer :index  => nil,  
                          :warmer => nil
 | 
  
    | Status | 
  
    | Elastics.index_status | 
        Template
       index_status:
- GET
- "/<<index>>/_status"
        Usage
       Elastics.index_status :index => nil
 | 
  
    | Stats | 
  
    | Elastics.index_stats | 
        Template
       index_stats:
- GET
- "/<<index>>/_stats/<<stats= ~ >>"
        Usage
       Elastics.index_stats :index => nil,  
                     :stats => nil
 | 
  
    | Segments | 
  
    | Elastics.index_segments | 
        Template
       index_segments:
- GET
- "/<<index>>/_segments"
        Usage
       Elastics.index_segments :index => nil
 | 
  
    | Recovery | 
  
    | Elastics.index_recovery | 
        Template
       index_recovery:
- GET
- "/<<index>>/_recovery"
        Usage
       Elastics.index_recovery :index => nil
 | 
  
    | Elastics.index_clearcache | 
        Template
       index_clearcache:
- POST
- "/<<index>>/_cache/clear"
        Usage
       Elastics.index_clearcache :index => nil
 | 
  
    | Flush | 
  
    | Elastics.flush_index | 
        Template
       flush_index:
- POST
- "/<<index>>/_flush"
        Usage
       Elastics.flush_index :index => nil
        You can pass the parameters as the :paramsvariable. | 
  
    | Synced Flush | 
  
    | Elastics.synced_flush_index | 
        Template
       synced_flush_index:
- POST
- "/<<index>>/_flush/synced"
        Usage
       Elastics.synced_flush_index :index => nil
        You can pass the parameters as the :paramsvariable. | 
  
    | Refresh | 
  
    | Elastics.refresh_index | 
        Template
       refresh_index:
- POST
- "/<<index>>/_refresh"
        Usage
       Elastics.refresh_index :index => nil
 | 
  
    | Optimize | 
  
    | Elastics.optimize_index | 
        Template
       optimize_index:
- POST
- "/<<index>>/_optimize"
        Usage
       Elastics.optimize_index :index => nil
        You can pass the parameters as the :paramsvariable. | 
  
    | Upgrade | 
  
    | Elastics.upgrade_index | 
        Template
       upgrade_index:
- POST
- "/<<index>>/_upgrade"
        Usage
       Elastics.upgrade_index :index => nil
        You can pass the parameters as the :paramsvariable. | 
  
    | Search Shards | 
  
    | Elastics.search_shards | 
        Template
       search_shards:
- GET
- "/<<index>>/<<type>>/_search_shards"
        Usage
       Elastics.search_shards :index => nil,  
                       :type  => nil
        You can pass the parameters as the :paramsvariable. | 
  
    | Elastics.count | 
        Template
       count:
- GET
- "/<<index>>/<<type>>/_count"
        Usage
       Elastics.count :index => nil,  
               :type  => nil
        You must pass the query to validate as the :datavariable. You can pass the parameters as the:paramsvariable. | 
  
    | Search Exists | 
  
    | Elastics.search_exists | 
        Template
       search_exists:
- GET
- "/<<index>>/<<type>>/<<id= ~ >>/_search/exists"
        Usage
       Elastics.search_exists :index => nil,  
                       :type  => nil,  
                       :id    => nil
        You must pass the query to validate as the :datavariable. You can pass the parameters as the:paramsvariable. | 
  
    | Validate | 
  
    | Elastics.validate | 
        Template
       validate:
- GET
- "/<<index>>/<<type>>/<<id= ~ >>/_validate/query"
        Usage
       Elastics.validate :index => nil,  
                  :type  => nil,  
                  :id    => nil
        You must pass the query to validate as the :datavariable. You can pass the parameters as the:paramsvariable. | 
  
    | Elastics.explain | 
        Template
       explain:
- GET
- "/<<index>>/<<type>>/<<id= ~ >>/_explain"
        Usage
       Elastics.explain :index => nil,  
                 :type  => nil,  
                 :id    => nil
        You must pass the query to explain as the :datavariable. You can pass the parameters as the:paramsvariable. | 
  
    | Percolator | 
  
    | Elastics.delete_percolator | 
        Template
       delete_percolator:
- DELETE
- "/<<index>>/.percolator/<<id>>"
        Usage
       Elastics.delete_percolator :id    => id,  # required
                           :index => nil
 | 
  
    | Elastics.percolate | 
        Template
       percolate:
- GET
- "/<<index>>/<<type>>/_percolate"
        Usage
       Elastics.percolate :index => nil,  
                   :type  => nil
        You must pass the the document (and additional queries) as :datavariable. | 
  
    | Elastics.percolate_count | 
        Template
       percolate_count:
- GET
- "/<<index>>/<<type>>/_percolate/count"
        Usage
       Elastics.percolate_count :index => nil,  
                         :type  => nil
        You must pass the the document (and additional queries) as :datavariable. | 
  
    | Elastics.put_percolator | 
        Template
       put_percolator:
- PUT
- "/<<index>>/.percolator/<<id>>"
        Usage
       Elastics.put_percolator :id    => id,  # required
                        :index => nil
        You must pass the the document (and additional queries) as :datavariable. | 
  
    | More Like This | 
  
    | Elastics.more_like_this | 
        Template
       more_like_this:
- GET
- "/<<index>>/<<type>>/<<id>>/_mlt"
        Usage
       Elastics.more_like_this :id    => id,   # required
                        :type  => nil,  
                        :index => nil
        You can pass the search API as :datavariable. 
        Aliases
       mlt | 
  
    | Health | 
  
    | Elastics.cluster_health | 
        Template
       cluster_health:
- GET
- "/_cluster/health/<<index>>"
        Usage
       Elastics.cluster_health :index => nil
        You can pass the params as the :paramsvariable. | 
  
    | State | 
  
    | Elastics.cluster_state | 
        Template
       cluster_state:
- GET
- "/_cluster/state/<<metrics= _all >>/<<index>>"
        Usage
       Elastics.cluster_state :metrics => "_all",  
                       :index   => nil
        You can pass the metrics as the :metricsvariable. | 
  
    | Stats | 
  
    | Elastics.cluster_stats | 
        Template
       cluster_stats:
- GET
- "/_cluster/stats"
        Usage
       
        You can pass the params as the :paramsvariable. | 
  
    | Pending Cluster Tasks | 
  
    | Elastics.cluster_pending_tasks | 
        Template
       cluster_pending_tasks:
- GET
- "/_cluster/pending_tasks"
        Usage
       Elastics.cluster_pending_tasks
        You can pass the params as the :paramsvariable. | 
  
    | Cluster Reroute | 
  
    | Elastics.cluster_reroute | 
        Template
       cluster_reroute:
- POST
- "/_cluster/reroute"
        Usage
       
        You must pass the data structure as the :datavariable. | 
  
    | Cluster Update Settings | 
  
    | Elastics.put_cluster_settings | 
        Template
       put_cluster_settings:
- PUT
- "/_cluster/settings"
        Usage
       Elastics.put_cluster_settings
        You must pass the data structure as the :datavariable. | 
  
    | Nodes Stats | 
  
    | Elastics.cluster_nodes_stats | 
        Template
       cluster_nodes_stats:
- GET
- "/_nodes/<<nodes= ~ >>/stats/<<stats= ~ >>"
        Usage
       Elastics.cluster_nodes_stats :nodes => nil,  
                             :stats => nil
        You can pass the params as the :paramsvariable. You must pass the data structure as the:datavariable. | 
  
    | Nodes Info | 
  
    | Elastics.cluster_nodes_info | 
        Template
       cluster_nodes_info:
- GET
- "/_nodes/<<nodes= ~ >>/<<info= ~ >>"
        Usage
       Elastics.cluster_nodes_info :nodes => nil,  
                            :info  => nil
        
          This template uses the _nodes shortcut.
         | 
  
    | Nodes Hot Threads | 
  
    | Elastics.cluster_nodes_hot_threads | 
        Template
       cluster_nodes_hot_threads:
- GET
- "/_nodes/<<nodes= ~ >>/hot_threads"
        Usage
       Elastics.cluster_nodes_hot_threads :nodes => nil
 | 
  
    | Elastics Additions | 
  
    |  Elastics.match_all | Not a real API method, but handy: Template match_all:
- GET
- /<<index>>/<<type>>/_search
- query:
    match_all: {}
Usage Elastics.match_all :index => "elastics_test_index",
                   :type  => nil
 | 
  
    |  Elastics.search_by_id | Get a document without using the get API (which doesn't support fields '*') Template search_by_id:
- GET
- /<<index>>/<<type>>/_search
- query:
    term:
      _id: <<id>>
Usage Elastics.search_by_id :id      => id,    # required
                      :type    => nil,
                      :index   => "elastics_test_index"
This method uses the search API, which is not real-time like the get API. You may want to refresh the index with Elastics.refresh_index, before calling it. | 
  
    | YourClass.elastics.multi_search | 
This method is documented here because it is an elasticsearch API method, however it is defined into your elasticsproxy included byElastics::Templates. The method allows you to do multi-searching by using multiple templates defined by your class. It takes 2 arguments. The first is a required hash with the templates names as the keys and the variable hash as the values. You can also use an array of arrays. The second is an optional hash of variables that will be used to render the multi_searchtemplate. The array of responses is available asresponsesmethod. Template multi_search:
- GET
- /<<index>>/<<type>>/_msearch
Usage result = MyClass.elastics.multi_search({:my_search_a => {:a_var => 'foo'},
                                        :my_search_b => {:another_var => 'bar'},
                                       {:index => 'another_index'})
result.responses.each{|r| r.do_something }
 | 
  
    |  Elastics.scan_search | Generic implementation of the elasticsearch search_type API of type scan. It passes the raw result to the block. Usage Elastics.scan_search(:my_template, my_vars) do |result|
  result['hits']['hits'].each{|d|do_something_with(d)}
end
 | 
  
    |  Elastics.scan_all | Specific implementation of the elasticsearch search_type API of type scan, applied to thematch_alltemplate/query. It passes an array of documents to the block. Usage Elastics.scan_all(my_vars) do |batch|
  batch.each{|d|do_something_with(d)}
end
 | 
  
    |  Elastics.dump_all | It flush_indexand callscan_all, with added{:params => {:fields => '*,_source'}}. Used to include all the relevant fields from a document: Usage Elastics.dump_all(my_vars) do |batch|
  batch.each{|d|do_something_with(d)}
end
 | 
  
    |  Elastics.dump_one | It flush_indexand callsearch_by_id, with added{:params => {:fields => '*,_source'}}. Used to include all the relevant fields from the document: Usage Elastics.dump_one :id      => id,    # required
                  :type    => nil,
                  :index   => "elastics_test_index"
 |