You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Aditya Manthramurthy a2a8d54bb6 Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
..
uritemplates Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
CHANGELOG-3.0.md Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
CHANGELOG-5.0.md Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
CONTRIBUTING.md Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
CONTRIBUTORS Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
ISSUE_TEMPLATE.md Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
LICENSE Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
README.md Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
acknowledged_response.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
backoff.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
bulk.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
bulk_delete_request.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
bulk_index_request.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
bulk_processor.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
bulk_request.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
bulk_update_request.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
canonicalize.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
clear_scroll.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
client.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
cluster_health.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
cluster_state.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
cluster_stats.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
connection.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
count.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
decoder.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
delete.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
delete_by_query.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
delete_template.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
doc.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
errors.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
exists.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
explain.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
fetch_source_context.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
field_stats.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
geo_point.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
get.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
get_template.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
highlight.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
index.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_analyze.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_close.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_create.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_delete.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_delete_template.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_exists.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_exists_template.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_exists_type.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_flush.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_forcemerge.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_get.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_get_aliases.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_get_field_mapping.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_get_mapping.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_get_settings.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_get_template.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_open.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_put_alias.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_put_mapping.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_put_settings.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_put_template.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_refresh.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_rollover.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_shrink.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
indices_stats.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
ingest_delete_pipeline.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
ingest_get_pipeline.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
ingest_put_pipeline.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
ingest_simulate_pipeline.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
inner_hit.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
logger.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
mget.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
msearch.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
mtermvectors.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
nodes_info.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
nodes_stats.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
ping.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
plugins.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
put_template.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
query.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
reindex.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
request.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
rescore.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
rescorer.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
response.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
retrier.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
retry.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
run-es-5.0.0-beta1.sh Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
run-es-5.0.0-rc1.sh Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
run-es-5.0.0.sh Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
run-es-5.0.1.sh Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
run-es-5.1.1.sh Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
run-es-5.1.2.sh Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
run-es-5.2.0.sh Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
run-es-5.2.1.sh Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
run-es-5.2.2.sh Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
script.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
scroll.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_children.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_date_histogram.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_date_range.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_filter.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_filters.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_geo_distance.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_geohash_grid.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_global.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_histogram.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_missing.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_nested.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_range.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_reverse_nested.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_sampler.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_significant_terms.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_bucket_terms.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_avg.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_cardinality.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_extended_stats.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_geo_bounds.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_max.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_min.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_percentile_ranks.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_percentiles.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_stats.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_sum.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_top_hits.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_metrics_value_count.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_avg_bucket.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_bucket_script.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_bucket_selector.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_cumulative_sum.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_derivative.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_max_bucket.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_min_bucket.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_mov_avg.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_serial_diff.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_stats_bucket.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_aggs_pipeline_sum_bucket.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_bool.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_boosting.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_common_terms.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_constant_score.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_dis_max.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_exists.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_fsq.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_fsq_score_funcs.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_fuzzy.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_geo_bounding_box.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_geo_distance.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_geo_polygon.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_has_child.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_has_parent.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_ids.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_indices.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_match.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_match_all.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_more_like_this.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_multi_match.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_nested.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_parent_id.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_percolator.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_prefix.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_query_string.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_range.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_raw_string.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_regexp.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_script.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_simple_query_string.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_slice.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_term.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_terms.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_type.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_queries_wildcard.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_request.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
search_source.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
sort.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggest.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggest_field.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggester.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggester_completion.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggester_completion_fuzzy.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggester_context.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggester_context_category.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggester_context_geo.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggester_phrase.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
suggester_term.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
tasks_cancel.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
tasks_list.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
termvectors.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
update.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago
update_by_query.go Add `access` format support for Elasticsearch notification target (#4006) 8 years ago

README.md

Elastic

Elastic is an Elasticsearch client for the Go programming language.

Build Status Godoc license

See the wiki for additional information about Elastic.

Releases

The release branches (e.g. release-branch.v5) are actively being worked on and can break at any time. If you want to use stable versions of Elastic, please use the packages released via gopkg.in.

Here's the version matrix:

Elasticsearch version Elastic version - Package URL
5.x 5.0 gopkg.in/olivere/elastic.v5 (source doc)
2.x 3.0 gopkg.in/olivere/elastic.v3 (source doc)
1.x 2.0 gopkg.in/olivere/elastic.v2 (source doc)
0.9-1.3 1.0 gopkg.in/olivere/elastic.v1 (source doc)

Example:

You have installed Elasticsearch 5.0.0 and want to use Elastic. As listed above, you should use Elastic 5.0. So you first install the stable release of Elastic 5.0 from gopkg.in.

$ go get gopkg.in/olivere/elastic.v5

You then import it with this import path:

import elastic "gopkg.in/olivere/elastic.v5"

Elastic 5.0

Elastic 5.0 targets Elasticsearch 5.0.0 and later. Elasticsearch 5.0.0 was released on 26th October 2016.

Notice that there are will be a lot of breaking changes in Elasticsearch 5.0 and we used this as an opportunity to clean up and refactor Elastic as we did in the transition from Elastic 2.0 (for Elasticsearch 1.x) to Elastic 3.0 (for Elasticsearch 2.x).

Furthermore, the jump in version numbers will give us a chance to be in sync with the Elastic Stack.

Elastic 3.0

Elastic 3.0 targets Elasticsearch 2.x and is published via gopkg.in/olivere/elastic.v3.

Elastic 3.0 will only get critical bug fixes. You should update to a recent version.

Elastic 2.0

Elastic 2.0 targets Elasticsearch 1.x and is published via gopkg.in/olivere/elastic.v2.

Elastic 2.0 will only get critical bug fixes. You should update to a recent version.

Elastic 1.0

Elastic 1.0 is deprecated. You should really update Elasticsearch and Elastic to a recent version.

However, if you cannot update for some reason, don't worry. Version 1.0 is still available. All you need to do is go-get it and change your import path as described above.

Status

We use Elastic in production since 2012. Elastic is stable but the API changes now and then. We strive for API compatibility. However, Elasticsearch sometimes introduces breaking changes and we sometimes have to adapt.

Having said that, there have been no big API changes that required you to rewrite your application big time. More often than not it's renaming APIs and adding/removing features so that Elastic is in sync with Elasticsearch.

Elastic has been used in production with the following Elasticsearch versions: 0.90, 1.0-1.7, and 2.0-2.4.1. Furthermore, we use Travis CI to test Elastic with the most recent versions of Elasticsearch and Go. See the .travis.yml file for the exact matrix and Travis for the results.

Elasticsearch has quite a few features. Most of them are implemented by Elastic. I add features and APIs as required. It's straightforward to implement missing pieces. I'm accepting pull requests :-)

Having said that, I hope you find the project useful.

Getting Started

The first thing you do is to create a Client. The client connects to Elasticsearch on http://127.0.0.1:9200 by default.

You typically create one client for your app. Here's a complete example of creating a client, creating an index, adding a document, executing a search etc.

// Create a context
ctx := context.Background()

// Create a client
client, err := elastic.NewClient()
if err != nil {
    // Handle error
    panic(err)
}

// Create an index
_, err = client.CreateIndex("twitter").Do(ctx)
if err != nil {
    // Handle error
    panic(err)
}

// Add a document to the index
tweet := Tweet{User: "olivere", Message: "Take Five"}
_, err = client.Index().
    Index("twitter").
    Type("tweet").
    Id("1").
    BodyJson(tweet).
    Refresh("true").
    Do(ctx)
if err != nil {
    // Handle error
    panic(err)
}

// Search with a term query
termQuery := elastic.NewTermQuery("user", "olivere")
searchResult, err := client.Search().
    Index("twitter").   // search in index "twitter"
    Query(termQuery).   // specify the query
    Sort("user", true). // sort by "user" field, ascending
    From(0).Size(10).   // take documents 0-9
    Pretty(true).       // pretty print request and response JSON
    Do(ctx)             // execute
if err != nil {
    // Handle error
    panic(err)
}

// searchResult is of type SearchResult and returns hits, suggestions,
// and all kinds of other information from Elasticsearch.
fmt.Printf("Query took %d milliseconds\n", searchResult.TookInMillis)

// Each is a convenience function that iterates over hits in a search result.
// It makes sure you don't need to check for nil values in the response.
// However, it ignores errors in serialization. If you want full control
// over iterating the hits, see below.
var ttyp Tweet
for _, item := range searchResult.Each(reflect.TypeOf(ttyp)) {
    if t, ok := item.(Tweet); ok {
        fmt.Printf("Tweet by %s: %s\n", t.User, t.Message)
    }
}
// TotalHits is another convenience function that works even when something goes wrong.
fmt.Printf("Found a total of %d tweets\n", searchResult.TotalHits())

// Here's how you iterate through results with full control over each step.
if searchResult.Hits.TotalHits > 0 {
    fmt.Printf("Found a total of %d tweets\n", searchResult.Hits.TotalHits)

    // Iterate through results
    for _, hit := range searchResult.Hits.Hits {
        // hit.Index contains the name of the index

        // Deserialize hit.Source into a Tweet (could also be just a map[string]interface{}).
        var t Tweet
        err := json.Unmarshal(*hit.Source, &t)
        if err != nil {
            // Deserialization failed
        }

        // Work with tweet
        fmt.Printf("Tweet by %s: %s\n", t.User, t.Message)
    }
} else {
    // No hits
    fmt.Print("Found no tweets\n")
}

// Delete the index again
_, err = client.DeleteIndex("twitter").Do(ctx)
if err != nil {
    // Handle error
    panic(err)
}

Here's a link to a complete working example.

See the wiki for more details.

API Status

Document APIs

  • Index API
  • Get API
  • Delete API
  • Delete By Query API
  • Update API
  • Update By Query API
  • Multi Get API
  • Bulk API
  • Reindex API
  • Term Vectors
  • Multi termvectors API

Search APIs

  • Search
  • Search Template
  • Multi Search Template
  • Search Shards API
  • Suggesters
    • Term Suggester
    • Phrase Suggester
    • Completion Suggester
    • Context Suggester
  • Multi Search API
  • Count API
  • Search Exists API
  • Validate API
  • Explain API
  • Profile API
  • Field Stats API

Aggregations

  • Metrics Aggregations
    • Avg
    • Cardinality
    • Extended Stats
    • Geo Bounds
    • Geo Centroid
    • Max
    • Min
    • Percentiles
    • Percentile Ranks
    • Scripted Metric
    • Stats
    • Sum
    • Top Hits
    • Value Count
  • Bucket Aggregations
    • Children
    • Date Histogram
    • Date Range
    • Filter
    • Filters
    • Geo Distance
    • GeoHash Grid
    • Global
    • Histogram
    • IP Range
    • Missing
    • Nested
    • Range
    • Reverse Nested
    • Sampler
    • Significant Terms
    • Terms
  • Pipeline Aggregations
    • Avg Bucket
    • Derivative
    • Max Bucket
    • Min Bucket
    • Sum Bucket
    • Stats Bucket
    • Extended Stats Bucket
    • Percentiles Bucket
    • Moving Average
    • Cumulative Sum
    • Bucket Script
    • Bucket Selector
    • Serial Differencing
  • Matrix Aggregations
    • Matrix Stats
  • Aggregation Metadata

Indices APIs

  • Create Index
  • Delete Index
  • Get Index
  • Indices Exists
  • Open / Close Index
  • 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
  • Upgrade

cat APIs

The cat APIs are not implemented as of now. We think they are better suited for operating with Elasticsearch on the command line.

  • cat aliases
  • cat allocation
  • cat count
  • cat fielddata
  • cat health
  • cat indices
  • cat master
  • cat nodeattrs
  • cat nodes
  • cat pending tasks
  • cat plugins
  • cat recovery
  • cat repositories
  • cat thread pool
  • cat shards
  • cat segments
  • cat snapshots

Cluster APIs

  • Cluster Health
  • Cluster State
  • Cluster Stats
  • Pending Cluster Tasks
  • Cluster Reroute
  • Cluster Update Settings
  • Nodes Stats
  • Nodes Info
  • Task Management API
  • Nodes hot_threads
  • Cluster Allocation Explain API

Query DSL

  • Match All Query
  • Inner hits
  • Full text queries
    • Match Query
    • Match Phrase Query
    • Match Phrase Prefix Query
    • Multi Match Query
    • Common Terms Query
    • Query String Query
    • Simple Query String Query
  • Term level queries
    • Term Query
    • Terms Query
    • Range Query
    • Exists Query
    • Prefix Query
    • Wildcard Query
    • Regexp Query
    • Fuzzy Query
    • Type Query
    • Ids Query
  • Compound queries
    • Constant Score Query
    • Bool Query
    • Dis Max Query
    • Function Score Query
    • Boosting Query
    • Indices Query
  • Joining queries
    • Nested Query
    • Has Child Query
    • Has Parent Query
    • Parent Id Query
  • Geo queries
    • GeoShape Query
    • Geo Bounding Box Query
    • Geo Distance Query
    • Geo Distance Range Query
    • Geo Polygon Query
    • Geohash Cell Query
  • Specialized queries
    • More Like This Query
    • Template Query
    • Script Query
    • Percolate Query
  • Span queries
    • Span Term Query
    • Span Multi Term Query
    • Span First Query
    • Span Near Query
    • Span Or Query
    • Span Not Query
    • Span Containing Query
    • Span Within Query
    • Span Field Masking Query
  • Minimum Should Match
  • Multi Term Query Rewrite

Modules

  • Snapshot and Restore

Sorting

  • Sort by score
  • Sort by field
  • Sort by geo distance
  • Sort by script
  • Sort by doc

Scrolling

Scrolling is supported via a ScrollService. It supports an iterator-like interface. The ClearScroll API is implemented as well.

A pattern for efficiently scrolling in parallel is described in the Wiki.

How to contribute

Read the contribution guidelines.

Credits

Thanks a lot for the great folks working hard on Elasticsearch and Go.

Elastic uses portions of the uritemplates library by Joshua Tacoma and backoff by Cenk Altı.

LICENSE

MIT-LICENSE. See LICENSE or the LICENSE file provided in the repository for details.