Elasticsearch client for Go.
Go Other
Latest commit f27a28d Jan 11, 2017 @olivere Use Go1.8rc1
Permalink
Failed to load latest commit information.
backoff Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
cluster-test Fix cluster-test Oct 26, 2016
config Fix Travis CI Nov 2, 2016
recipes Move recipes into their own directories Dec 6, 2016
uritemplates use uritemplates Oct 31, 2014
.gitignore Handle HTTP 408 (timeout); update docs Aug 19, 2015
.travis.yml Use Go1.8rc1 Jan 11, 2017
CHANGELOG-3.0.md Remove the ErrPluginNotFound error Jan 17, 2016
CHANGELOG-5.0.md Update CHANGELOG for elastic.v5 Oct 31, 2016
CONTRIBUTING.md Report error if setting the request body fails Feb 3, 2016
CONTRIBUTORS Update list of contributors Jan 9, 2017
ISSUE_TEMPLATE.md Update documentation Sep 23, 2016
LICENSE Merge client-refactoring into master and prepare for v2 Feb 28, 2015
README.md Add Index Analyze API Jan 8, 2017
acknowledged_response.go Fix search templates API Sep 22, 2016
bulk.go Update Bulk APIs to recent version Oct 31, 2016
bulk_delete_request.go Update Bulk APIs to recent version Oct 31, 2016
bulk_delete_request_test.go Add parent to BulkDeleteRequest May 15, 2016
bulk_index_request.go Add Pipeline, RetryOnConflict, and TTL to BulkIndexRequest Nov 16, 2016
bulk_index_request_test.go Add Pipeline, RetryOnConflict, and TTL to BulkIndexRequest Nov 16, 2016
bulk_processor.go Port changes in v3 over to v5 Sep 1, 2016
bulk_processor_test.go Port changes in v3 over to v5 Sep 1, 2016
bulk_request.go Update Bulk APIs to recent version Oct 31, 2016
bulk_test.go Fix scripting tests Sep 23, 2016
bulk_update_request.go Add DetectNoop to BulkUpdateRequest Nov 26, 2016
bulk_update_request_test.go Add DetectNoop to BulkUpdateRequest Nov 26, 2016
canonicalize.go Be more strict in accepted client URLs Jan 4, 2017
canonicalize_test.go Be more strict in accepted client URLs Jan 4, 2017
clear_scroll.go Port changes in v3 over to v5 Sep 1, 2016
clear_scroll_test.go Adapt to ES 5.0.0-alpha5 (down to 11 errors) Sep 22, 2016
client.go Add missing fields to field stats Jan 11, 2017
client_test.go Add Sniffer callback Jan 8, 2017
cluster_health.go Remove wait_for_relocating_shards in Cluster Health API Jan 8, 2017
cluster_health_test.go Port changes in v3 over to v5 Sep 1, 2016
cluster_state.go Port changes in v3 over to v5 Sep 1, 2016
cluster_state_test.go Port changes in v3 over to v5 Sep 1, 2016
cluster_stats.go Port changes in v3 over to v5 Sep 1, 2016
cluster_stats_test.go Port changes in v3 over to v5 Sep 1, 2016
connection.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
count.go Port changes in v3 over to v5 Sep 1, 2016
count_test.go Port changes in v3 over to v5 Sep 1, 2016
decoder.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
decoder_test.go Port changes in v3 over to v5 Sep 1, 2016
delete.go Update Index APIs to recent version Oct 31, 2016
delete_by_query.go Update Index APIs to recent version Oct 31, 2016
delete_by_query_test.go Adapt to ES 5.0.0-alpha5 (down to 11 errors) Sep 22, 2016
delete_template.go Fix search templates API Sep 22, 2016
delete_template_test.go Port changes in v3 over to v5 Sep 1, 2016
delete_test.go Port changes in v3 over to v5 Sep 1, 2016
doc.go Update doc.go with context parameter for Do() Jan 4, 2017
errors.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
errors_test.go Retry only when HTTP request fails Nov 14, 2015
example_test.go Fix main example for 5.0 Dec 17, 2016
exists.go Port changes in v3 over to v5 Sep 1, 2016
exists_test.go Port changes in v3 over to v5 Sep 1, 2016
explain.go Port changes in v3 over to v5 Sep 1, 2016
explain_test.go Port changes in v3 over to v5 Sep 1, 2016
fetch_source_context.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
fetch_source_context_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
field_stats.go Add missing fields to field stats Jan 11, 2017
field_stats_test.go Add missing fields to field stats Jan 11, 2017
geo_point.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
geo_point_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
get.go Fix test in Get API Sep 23, 2016
get_template.go Port changes in v3 over to v5 Sep 1, 2016
get_template_test.go Fix search templates API Sep 22, 2016
get_test.go Fix test in Get API Sep 23, 2016
highlight.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
highlight_test.go Port changes in v3 over to v5 Sep 1, 2016
index.go Update Index APIs to recent version Oct 31, 2016
index_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_analyze.go Add Index Analyze API Jan 8, 2017
indices_analyze_test.go Add Index Analyze API Jan 8, 2017
indices_close.go Port changes in v3 over to v5 Sep 1, 2016
indices_close_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_create.go Add Index Shrink API Nov 2, 2016
indices_create_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_delete.go Port changes in v3 over to v5 Sep 1, 2016
indices_delete_template.go Port changes in v3 over to v5 Sep 1, 2016
indices_delete_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_exists.go Port changes in v3 over to v5 Sep 1, 2016
indices_exists_template.go Port changes in v3 over to v5 Sep 1, 2016
indices_exists_template_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_exists_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_exists_type.go Index Type Exists API changed endpoint Oct 16, 2016
indices_exists_type_test.go Index Type Exists API changed endpoint Oct 16, 2016
indices_flush.go Port changes in v3 over to v5 Sep 1, 2016
indices_flush_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_forcemerge.go Remove `wait_for_merge` from Forcemerge API Oct 16, 2016
indices_forcemerge_test.go Remove `wait_for_merge` from Forcemerge API Oct 16, 2016
indices_get.go Port changes in v3 over to v5 Sep 1, 2016
indices_get_aliases.go Port changes in v3 over to v5 Sep 1, 2016
indices_get_aliases_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_get_mapping.go Port changes in v3 over to v5 Sep 1, 2016
indices_get_mapping_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
indices_get_settings.go Port changes in v3 over to v5 Sep 1, 2016
indices_get_settings_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_get_template.go Port changes in v3 over to v5 Sep 1, 2016
indices_get_template_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
indices_get_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_open.go Port changes in v3 over to v5 Sep 1, 2016
indices_open_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_put_alias.go Port changes in v3 over to v5 Sep 1, 2016
indices_put_alias_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_put_mapping.go Port changes in v3 over to v5 Sep 1, 2016
indices_put_mapping_test.go Fix test for put mapping Sep 22, 2016
indices_put_settings.go Port changes in v3 over to v5 Sep 1, 2016
indices_put_settings_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_put_template.go Port changes in v3 over to v5 Sep 1, 2016
indices_refresh.go Port changes in v3 over to v5 Sep 1, 2016
indices_refresh_test.go Port changes in v3 over to v5 Sep 1, 2016
indices_rollover.go Fix Rollover API Nov 18, 2016
indices_rollover_test.go Add Rollover Index API Nov 2, 2016
indices_shrink.go Index Shrink API doesn't require a body Nov 19, 2016
indices_shrink_test.go Add Index Shrink API Nov 2, 2016
indices_stats.go Port changes in v3 over to v5 Sep 1, 2016
indices_stats_test.go Port changes in v3 over to v5 Sep 1, 2016
ingest_delete_pipeline.go Add Ingest API Nov 6, 2016
ingest_delete_pipeline_test.go Add Ingest API Nov 6, 2016
ingest_get_pipeline.go Add Ingest API Nov 6, 2016
ingest_get_pipeline_test.go Add Ingest API Nov 6, 2016
ingest_put_pipeline.go Add Ingest API Nov 6, 2016
ingest_put_pipeline_test.go Add Ingest API Nov 6, 2016
ingest_simulate_pipeline.go Add Ingest API Nov 6, 2016
ingest_simulate_pipeline_test.go Add Ingest API Nov 6, 2016
inner_hit.go Adapt to ES 5.0.0-alpha5 (down to 11 errors) Sep 22, 2016
inner_hit_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
logger.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
mget.go Fix Multi GET API Nov 18, 2016
mget_test.go Port changes in v3 over to v5 Sep 1, 2016
msearch.go Port changes in v3 over to v5 Sep 1, 2016
msearch_test.go Port changes in v3 over to v5 Sep 1, 2016
mtermvectors.go Port changes in v3 over to v5 Sep 1, 2016
mtermvectors_test.go Port changes in v3 over to v5 Sep 1, 2016
nodes_info.go Port changes in v3 over to v5 Sep 1, 2016
nodes_info_test.go Port changes in v3 over to v5 Sep 1, 2016
nodes_stats.go Port changes in v3 over to v5 Sep 1, 2016
nodes_stats_test.go Port changes in v3 over to v5 Sep 1, 2016
percolate_test.go Percolator changes Sep 22, 2016
ping.go Port changes in v3 over to v5 Sep 1, 2016
ping_test.go Port changes in v3 over to v5 Sep 1, 2016
plugins.go Port changes in v3 over to v5 Sep 1, 2016
plugins_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
put_template.go Fix search templates API Sep 22, 2016
put_template_test.go Remove template query Sep 22, 2016
query.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
reindex.go Update Index APIs to recent version Oct 31, 2016
reindex_test.go Update Index APIs to recent version Oct 31, 2016
request.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
request_test.go Add benchmarks for Request Sep 29, 2016
rescore.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
rescorer.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
response.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
run-es-5.0.0-beta1.sh Add 5.0.0-beta1.sh startup script Sep 23, 2016
run-es-5.0.0-rc1.sh Update to 5.0.0-rc1 Oct 16, 2016
run-es-5.0.0.sh Elasticsearch 5.0.0 GA is released Oct 26, 2016
run-es-5.0.1.sh Add Pipeline, RetryOnConflict, and TTL to BulkIndexRequest Nov 16, 2016
run-es-5.1.1.sh Update tests to ES 5.1.1 Dec 17, 2016
script.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
script_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
scroll.go Add sliced scrolling Nov 29, 2016
scroll_test.go Fix the ScrollWithSlice test Nov 29, 2016
search.go Implement changes to Suggesters Nov 14, 2016
search_aggs.go Fix Count type in Pipeline Stats Bucket Jan 10, 2017
search_aggs_bucket_children.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_children_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_date_histogram.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_date_histogram_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_date_range.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_aggs_bucket_date_range_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_filter.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_filter_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_filters.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_filters_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_geo_distance.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_aggs_bucket_geo_distance_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_geohash_grid.go Add GeoHash aggregation Mar 25, 2016
search_aggs_bucket_geohash_grid_test.go Add GeoHash aggregation Mar 25, 2016
search_aggs_bucket_global.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_global_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_histogram.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_histogram_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_missing.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_missing_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_nested.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_nested_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_range.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_aggs_bucket_range_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_reverse_nested.go Fix wrong reverse_nested generator Apr 27, 2016
search_aggs_bucket_reverse_nested_test.go Fix wrong reverse_nested generator Apr 27, 2016
search_aggs_bucket_sampler.go Histogram aggs emit float64 keys now Sep 22, 2016
search_aggs_bucket_sampler_test.go Histogram aggs emit float64 keys now Sep 22, 2016
search_aggs_bucket_significant_terms.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_significant_terms_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_terms.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_bucket_terms_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_avg.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_avg_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_cardinality.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_cardinality_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_extended_stats.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_extended_stats_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_geo_bounds.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_geo_bounds_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_max.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_max_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_min.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_min_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_percentile_ranks.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_percentile_ranks_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_percentiles.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_percentiles_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_stats.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_stats_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_sum.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_sum_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_top_hits.go Adapt to ES 5.0.0-alpha5 (down to 11 errors) Sep 22, 2016
search_aggs_metrics_top_hits_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_value_count.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_metrics_value_count_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_avg_bucket.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_avg_bucket_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_bucket_script.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_bucket_script_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_bucket_selector.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_bucket_selector_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_cumulative_sum.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_cumulative_sum_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_derivative.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_derivative_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_max_bucket.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_max_bucket_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_min_bucket.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_min_bucket_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_mov_avg.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_mov_avg_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_serial_diff.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_serial_diff_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_stats_bucket.go Added pipeline stats bucket aggregation Jan 8, 2017
search_aggs_pipeline_stats_bucket_test.go Added pipeline stats bucket aggregation Jan 8, 2017
search_aggs_pipeline_sum_bucket.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_sum_bucket_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_aggs_pipeline_test.go Fix scripting tests Sep 23, 2016
search_aggs_test.go Fix Count type in Pipeline Stats Bucket Jan 10, 2017
search_queries_bool.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_queries_bool_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_boosting.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_boosting_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_common_terms.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_common_terms_test.go Port changes in v3 over to v5 Sep 1, 2016
search_queries_constant_score.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_constant_score_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_dis_max.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_queries_dis_max_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_exists.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_exists_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_fsq.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_fsq_score_funcs.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_fsq_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_fuzzy.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_fuzzy_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_geo_bounding_box.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_geo_bounding_box_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_geo_distance.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_geo_distance_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_geo_polygon.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_queries_geo_polygon_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_has_child.go Adapt scoring in HasChildQuery/HasParentQuery Nov 22, 2016
search_queries_has_child_test.go Adapt scoring in HasChildQuery/HasParentQuery Nov 22, 2016
search_queries_has_parent.go Adapt scoring in HasChildQuery/HasParentQuery Nov 22, 2016
search_queries_has_parent_test.go Adapt scoring in HasChildQuery/HasParentQuery Nov 22, 2016
search_queries_ids.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_ids_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_indices.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_indices_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_match.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_match_all.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_match_all_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_match_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_more_like_this.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_queries_more_like_this_test.go Port changes in v3 over to v5 Sep 1, 2016
search_queries_multi_match.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_queries_multi_match_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_nested.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_nested_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_percolator.go Percolator changes Sep 22, 2016
search_queries_percolator_test.go Percolator changes Sep 22, 2016
search_queries_prefix.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_prefix_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_query_string.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_queries_query_string_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_range.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_range_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_raw_string.go Adapt to ES 5.0.0-alpha5 (down to 11 errors) Sep 22, 2016
search_queries_raw_string_test.go Adapt to ES 5.0.0-alpha5 (down to 11 errors) Sep 22, 2016
search_queries_regexp.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_regexp_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_script.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_script_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_simple_query_string.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
search_queries_simple_query_string_test.go Port changes in v3 over to v5 Sep 1, 2016
search_queries_slice.go Add sliced scrolling Nov 29, 2016
search_queries_slice_test.go Add sliced scrolling Nov 29, 2016
search_queries_term.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_term_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_terms.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_terms_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_type.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_type_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_wildcard.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_queries_wildcard_test.go Port changes in v3 over to v5 Sep 1, 2016
search_request.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_request_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
search_source.go Add sliced scrolling Nov 29, 2016
search_source_test.go Adapt to ES 5.0.0-alpha5 (down to 11 errors) Sep 22, 2016
search_suggester_test.go Implement changes to Suggesters Nov 14, 2016
search_test.go Move `request_cache` into query params Sep 28, 2016
setup_test.go Fix test for put mapping Sep 22, 2016
sort.go Convert Sorters to pointer receivers Oct 26, 2016
sort_test.go Fix SortInfo Apr 22, 2016
suggest.go Port changes in v3 over to v5 Sep 1, 2016
suggest_field.go Suggester Context queries should be passed as a map Jan 8, 2017
suggest_field_test.go Suggester Context queries should be passed as a map Jan 8, 2017
suggest_test.go Port changes in v3 over to v5 Sep 1, 2016
suggester.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
suggester_completion.go Fix serialization of suggester with context queries Jul 27, 2016
suggester_completion_fuzzy.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
suggester_completion_fuzzy_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
suggester_completion_test.go Fix serialization of suggester with context queries Jul 27, 2016
suggester_context.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
suggester_context_category.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
suggester_context_category_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
suggester_context_geo.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
suggester_context_geo_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
suggester_phrase.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
suggester_phrase_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
suggester_term.go Update to ES 5.0.0-alpha4; cleanup Jul 28, 2016
suggester_term_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016
tasks_cancel.go Port changes in v3 over to v5 Sep 1, 2016
tasks_cancel_test.go Port changes in v3 over to v5 Sep 1, 2016
tasks_list.go Port changes in v3 over to v5 Sep 1, 2016
tasks_list_test.go Port changes in v3 over to v5 Sep 1, 2016
termvectors.go Port changes in v3 over to v5 Sep 1, 2016
termvectors_test.go Remove test for `took` > 0 in TermVectors tests Sep 22, 2016
update.go Update Index APIs to recent version Oct 31, 2016
update_by_query.go Update Index APIs to recent version Oct 31, 2016
update_by_query_test.go Update Index APIs to recent version Oct 31, 2016
update_test.go Prepare for Elasticsearch 5.0 (wip) Jun 25, 2016

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 client
client, err := elastic.NewClient()
if err != nil {
    // Handle error
}

// Create an index
_, err = client.CreateIndex("twitter").Do()
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()
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()                // 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()
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.