wcc e2d46872f2 日报程序 hai 1 ano
..
cluster-test e2d46872f2 日报程序 hai 1 ano
uritemplates e2d46872f2 日报程序 hai 1 ano
CONTRIBUTING.md e2d46872f2 日报程序 hai 1 ano
LICENSE e2d46872f2 日报程序 hai 1 ano
README.md e2d46872f2 日报程序 hai 1 ano
alias.go e2d46872f2 日报程序 hai 1 ano
alias_test.go e2d46872f2 日报程序 hai 1 ano
aliases.go e2d46872f2 日报程序 hai 1 ano
aliases_test.go e2d46872f2 日报程序 hai 1 ano
bulk.go e2d46872f2 日报程序 hai 1 ano
bulk_delete_request.go e2d46872f2 日报程序 hai 1 ano
bulk_delete_request_test.go e2d46872f2 日报程序 hai 1 ano
bulk_index_request.go e2d46872f2 日报程序 hai 1 ano
bulk_index_request_test.go e2d46872f2 日报程序 hai 1 ano
bulk_request.go e2d46872f2 日报程序 hai 1 ano
bulk_test.go e2d46872f2 日报程序 hai 1 ano
bulk_update_request.go e2d46872f2 日报程序 hai 1 ano
bulk_update_request_test.go e2d46872f2 日报程序 hai 1 ano
canonicalize.go e2d46872f2 日报程序 hai 1 ano
canonicalize_test.go e2d46872f2 日报程序 hai 1 ano
clear_scroll.go e2d46872f2 日报程序 hai 1 ano
clear_scroll_test.go e2d46872f2 日报程序 hai 1 ano
client.go e2d46872f2 日报程序 hai 1 ano
client_test.go e2d46872f2 日报程序 hai 1 ano
cluster_health.go e2d46872f2 日报程序 hai 1 ano
cluster_health_test.go e2d46872f2 日报程序 hai 1 ano
cluster_state.go e2d46872f2 日报程序 hai 1 ano
cluster_state_test.go e2d46872f2 日报程序 hai 1 ano
connection.go e2d46872f2 日报程序 hai 1 ano
count.go e2d46872f2 日报程序 hai 1 ano
count_test.go e2d46872f2 日报程序 hai 1 ano
create_index.go e2d46872f2 日报程序 hai 1 ano
decoder.go e2d46872f2 日报程序 hai 1 ano
decoder_test.go e2d46872f2 日报程序 hai 1 ano
delete.go e2d46872f2 日报程序 hai 1 ano
delete_by_query.go e2d46872f2 日报程序 hai 1 ano
delete_by_query_test.go e2d46872f2 日报程序 hai 1 ano
delete_index.go e2d46872f2 日报程序 hai 1 ano
delete_mapping.go e2d46872f2 日报程序 hai 1 ano
delete_mapping_test.go e2d46872f2 日报程序 hai 1 ano
delete_template.go e2d46872f2 日报程序 hai 1 ano
delete_test.go e2d46872f2 日报程序 hai 1 ano
doc.go e2d46872f2 日报程序 hai 1 ano
errors.go e2d46872f2 日报程序 hai 1 ano
errors_test.go e2d46872f2 日报程序 hai 1 ano
example_test.go e2d46872f2 日报程序 hai 1 ano
exists.go e2d46872f2 日报程序 hai 1 ano
explain.go e2d46872f2 日报程序 hai 1 ano
explain_test.go e2d46872f2 日报程序 hai 1 ano
fetch_source_context.go e2d46872f2 日报程序 hai 1 ano
fetch_source_context_test.go e2d46872f2 日报程序 hai 1 ano
filter.go e2d46872f2 日报程序 hai 1 ano
flush.go e2d46872f2 日报程序 hai 1 ano
flush_test.go e2d46872f2 日报程序 hai 1 ano
geo_point.go e2d46872f2 日报程序 hai 1 ano
geo_point_test.go e2d46872f2 日报程序 hai 1 ano
get.go e2d46872f2 日报程序 hai 1 ano
get_mapping.go e2d46872f2 日报程序 hai 1 ano
get_mapping_test.go e2d46872f2 日报程序 hai 1 ano
get_template.go e2d46872f2 日报程序 hai 1 ano
get_template_test.go e2d46872f2 日报程序 hai 1 ano
get_test.go e2d46872f2 日报程序 hai 1 ano
highlight.go e2d46872f2 日报程序 hai 1 ano
highlight_test.go e2d46872f2 日报程序 hai 1 ano
index.go e2d46872f2 日报程序 hai 1 ano
index_close.go e2d46872f2 日报程序 hai 1 ano
index_exists.go e2d46872f2 日报程序 hai 1 ano
index_get.go e2d46872f2 日报程序 hai 1 ano
index_get_settings.go e2d46872f2 日报程序 hai 1 ano
index_get_settings_test.go e2d46872f2 日报程序 hai 1 ano
index_get_test.go e2d46872f2 日报程序 hai 1 ano
index_open.go e2d46872f2 日报程序 hai 1 ano
index_test.go e2d46872f2 日报程序 hai 1 ano
indices_delete_template.go e2d46872f2 日报程序 hai 1 ano
indices_exists_template.go e2d46872f2 日报程序 hai 1 ano
indices_exists_template_test.go e2d46872f2 日报程序 hai 1 ano
indices_exists_type.go e2d46872f2 日报程序 hai 1 ano
indices_exists_type_test.go e2d46872f2 日报程序 hai 1 ano
indices_get_template.go e2d46872f2 日报程序 hai 1 ano
indices_get_template_test.go e2d46872f2 日报程序 hai 1 ano
indices_put_template.go e2d46872f2 日报程序 hai 1 ano
indices_stats.go e2d46872f2 日报程序 hai 1 ano
indices_stats_test.go e2d46872f2 日报程序 hai 1 ano
multi_get.go e2d46872f2 日报程序 hai 1 ano
multi_get_test.go e2d46872f2 日报程序 hai 1 ano
multi_search.go e2d46872f2 日报程序 hai 1 ano
multi_search_test.go e2d46872f2 日报程序 hai 1 ano
nodes_info.go e2d46872f2 日报程序 hai 1 ano
nodes_info_test.go e2d46872f2 日报程序 hai 1 ano
optimize.go e2d46872f2 日报程序 hai 1 ano
optimize_test.go e2d46872f2 日报程序 hai 1 ano
percolate.go e2d46872f2 日报程序 hai 1 ano
percolate_test.go e2d46872f2 日报程序 hai 1 ano
ping.go e2d46872f2 日报程序 hai 1 ano
ping_test.go e2d46872f2 日报程序 hai 1 ano
put_mapping.go e2d46872f2 日报程序 hai 1 ano
put_mapping_test.go e2d46872f2 日报程序 hai 1 ano
put_template.go e2d46872f2 日报程序 hai 1 ano
query.go e2d46872f2 日报程序 hai 1 ano
refresh.go e2d46872f2 日报程序 hai 1 ano
refresh_test.go e2d46872f2 日报程序 hai 1 ano
reindexer.go e2d46872f2 日报程序 hai 1 ano
reindexer_test.go e2d46872f2 日报程序 hai 1 ano
request.go e2d46872f2 日报程序 hai 1 ano
rescore.go e2d46872f2 日报程序 hai 1 ano
rescorer.go e2d46872f2 日报程序 hai 1 ano
response.go e2d46872f2 日报程序 hai 1 ano
scan.go e2d46872f2 日报程序 hai 1 ano
scan_test.go e2d46872f2 日报程序 hai 1 ano
scroll.go e2d46872f2 日报程序 hai 1 ano
scroll_test.go e2d46872f2 日报程序 hai 1 ano
search.go e2d46872f2 日报程序 hai 1 ano
search_aggs.go e2d46872f2 日报程序 hai 1 ano
search_aggs_avg.go e2d46872f2 日报程序 hai 1 ano
search_aggs_avg_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_cardinality.go e2d46872f2 日报程序 hai 1 ano
search_aggs_cardinality_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_children.go e2d46872f2 日报程序 hai 1 ano
search_aggs_children_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_date_histogram.go e2d46872f2 日报程序 hai 1 ano
search_aggs_date_histogram_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_date_range.go e2d46872f2 日报程序 hai 1 ano
search_aggs_date_range_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_extended_stats.go e2d46872f2 日报程序 hai 1 ano
search_aggs_extended_stats_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_filter.go e2d46872f2 日报程序 hai 1 ano
search_aggs_filter_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_filters.go e2d46872f2 日报程序 hai 1 ano
search_aggs_filters_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_geo_bounds.go e2d46872f2 日报程序 hai 1 ano
search_aggs_geo_bounds_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_geo_distance.go e2d46872f2 日报程序 hai 1 ano
search_aggs_geo_distance_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_global.go e2d46872f2 日报程序 hai 1 ano
search_aggs_global_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_histogram.go e2d46872f2 日报程序 hai 1 ano
search_aggs_histogram_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_max.go e2d46872f2 日报程序 hai 1 ano
search_aggs_max_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_min.go e2d46872f2 日报程序 hai 1 ano
search_aggs_min_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_missing.go e2d46872f2 日报程序 hai 1 ano
search_aggs_missing_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_nested.go e2d46872f2 日报程序 hai 1 ano
search_aggs_nested_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_percentile_ranks.go e2d46872f2 日报程序 hai 1 ano
search_aggs_percentile_ranks_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_percentiles.go e2d46872f2 日报程序 hai 1 ano
search_aggs_percentiles_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_range.go e2d46872f2 日报程序 hai 1 ano
search_aggs_range_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_significant_terms.go e2d46872f2 日报程序 hai 1 ano
search_aggs_significant_terms_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_stats.go e2d46872f2 日报程序 hai 1 ano
search_aggs_stats_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_sum.go e2d46872f2 日报程序 hai 1 ano
search_aggs_sum_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_terms.go e2d46872f2 日报程序 hai 1 ano
search_aggs_terms_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_tophits.go e2d46872f2 日报程序 hai 1 ano
search_aggs_tophits_test.go e2d46872f2 日报程序 hai 1 ano
search_aggs_value_count.go e2d46872f2 日报程序 hai 1 ano
search_aggs_value_count_test.go e2d46872f2 日报程序 hai 1 ano
search_facets.go e2d46872f2 日报程序 hai 1 ano
search_facets_date_histogram.go e2d46872f2 日报程序 hai 1 ano
search_facets_date_histogram_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_filter.go e2d46872f2 日报程序 hai 1 ano
search_facets_filter_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_geo_distance.go e2d46872f2 日报程序 hai 1 ano
search_facets_geo_distance_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_histogram.go e2d46872f2 日报程序 hai 1 ano
search_facets_histogram_script.go e2d46872f2 日报程序 hai 1 ano
search_facets_histogram_script_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_histogram_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_query.go e2d46872f2 日报程序 hai 1 ano
search_facets_query_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_range.go e2d46872f2 日报程序 hai 1 ano
search_facets_range_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_statistical.go e2d46872f2 日报程序 hai 1 ano
search_facets_statistical_script.go e2d46872f2 日报程序 hai 1 ano
search_facets_statistical_script_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_statistical_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_terms.go e2d46872f2 日报程序 hai 1 ano
search_facets_terms_stats.go e2d46872f2 日报程序 hai 1 ano
search_facets_terms_stats_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_terms_test.go e2d46872f2 日报程序 hai 1 ano
search_facets_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_and.go e2d46872f2 日报程序 hai 1 ano
search_filters_and_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_bool.go e2d46872f2 日报程序 hai 1 ano
search_filters_bool_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_exists.go e2d46872f2 日报程序 hai 1 ano
search_filters_exists_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_geo_distance.go e2d46872f2 日报程序 hai 1 ano
search_filters_geo_distance_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_geo_polygon.go e2d46872f2 日报程序 hai 1 ano
search_filters_geo_polygon_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_has_child.go e2d46872f2 日报程序 hai 1 ano
search_filters_has_child_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_has_parent.go e2d46872f2 日报程序 hai 1 ano
search_filters_has_parent_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_ids.go e2d46872f2 日报程序 hai 1 ano
search_filters_ids_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_limit.go e2d46872f2 日报程序 hai 1 ano
search_filters_limit_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_match_all.go e2d46872f2 日报程序 hai 1 ano
search_filters_match_all_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_missing.go e2d46872f2 日报程序 hai 1 ano
search_filters_missing_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_nested.go e2d46872f2 日报程序 hai 1 ano
search_filters_nested_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_not.go e2d46872f2 日报程序 hai 1 ano
search_filters_not_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_or.go e2d46872f2 日报程序 hai 1 ano
search_filters_or_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_prefix.go e2d46872f2 日报程序 hai 1 ano
search_filters_prefix_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_query.go e2d46872f2 日报程序 hai 1 ano
search_filters_query_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_range.go e2d46872f2 日报程序 hai 1 ano
search_filters_range_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_regexp.go e2d46872f2 日报程序 hai 1 ano
search_filters_regexp_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_term.go e2d46872f2 日报程序 hai 1 ano
search_filters_term_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_terms.go e2d46872f2 日报程序 hai 1 ano
search_filters_terms_test.go e2d46872f2 日报程序 hai 1 ano
search_filters_type.go e2d46872f2 日报程序 hai 1 ano
search_filters_type_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_bool.go e2d46872f2 日报程序 hai 1 ano
search_queries_bool_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_boosting.go e2d46872f2 日报程序 hai 1 ano
search_queries_boosting_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_common.go e2d46872f2 日报程序 hai 1 ano
search_queries_common_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_custom_filters_score.go e2d46872f2 日报程序 hai 1 ano
search_queries_custom_score.go e2d46872f2 日报程序 hai 1 ano
search_queries_dis_max.go e2d46872f2 日报程序 hai 1 ano
search_queries_filtered.go e2d46872f2 日报程序 hai 1 ano
search_queries_fsq.go e2d46872f2 日报程序 hai 1 ano
search_queries_fsq_score_funcs.go e2d46872f2 日报程序 hai 1 ano
search_queries_fsq_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_fuzzy.go e2d46872f2 日报程序 hai 1 ano
search_queries_fuzzy_like_this.go e2d46872f2 日报程序 hai 1 ano
search_queries_fuzzy_like_this_field_query.go e2d46872f2 日报程序 hai 1 ano
search_queries_fuzzy_like_this_field_query_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_fuzzy_like_this_query_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_fuzzy_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_has_child.go e2d46872f2 日报程序 hai 1 ano
search_queries_has_child_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_has_parent.go e2d46872f2 日报程序 hai 1 ano
search_queries_has_parent_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_ids.go e2d46872f2 日报程序 hai 1 ano
search_queries_ids_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_match.go e2d46872f2 日报程序 hai 1 ano
search_queries_match_all.go e2d46872f2 日报程序 hai 1 ano
search_queries_match_all_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_match_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_more_like_this.go e2d46872f2 日报程序 hai 1 ano
search_queries_more_like_this_field.go e2d46872f2 日报程序 hai 1 ano
search_queries_more_like_this_field_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_more_like_this_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_multi_match.go e2d46872f2 日报程序 hai 1 ano
search_queries_multi_match_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_nested.go e2d46872f2 日报程序 hai 1 ano
search_queries_nested_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_prefix.go e2d46872f2 日报程序 hai 1 ano
search_queries_prefix_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_query_string.go e2d46872f2 日报程序 hai 1 ano
search_queries_query_string_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_range.go e2d46872f2 日报程序 hai 1 ano
search_queries_range_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_regexp.go e2d46872f2 日报程序 hai 1 ano
search_queries_regexp_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_simple_query_string.go e2d46872f2 日报程序 hai 1 ano
search_queries_simple_query_string_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_template_query.go e2d46872f2 日报程序 hai 1 ano
search_queries_template_query_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_term.go e2d46872f2 日报程序 hai 1 ano
search_queries_term_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_terms.go e2d46872f2 日报程序 hai 1 ano
search_queries_terms_test.go e2d46872f2 日报程序 hai 1 ano
search_queries_wildcard.go e2d46872f2 日报程序 hai 1 ano
search_queries_wildcard_test.go e2d46872f2 日报程序 hai 1 ano
search_request.go e2d46872f2 日报程序 hai 1 ano
search_request_test.go e2d46872f2 日报程序 hai 1 ano
search_source.go e2d46872f2 日报程序 hai 1 ano
search_source_test.go e2d46872f2 日报程序 hai 1 ano
search_suggester_test.go e2d46872f2 日报程序 hai 1 ano
search_templates_test.go e2d46872f2 日报程序 hai 1 ano
search_test.go e2d46872f2 日报程序 hai 1 ano
sort.go e2d46872f2 日报程序 hai 1 ano
sort_test.go e2d46872f2 日报程序 hai 1 ano
suggest.go e2d46872f2 日报程序 hai 1 ano
suggest_field.go e2d46872f2 日报程序 hai 1 ano
suggest_test.go e2d46872f2 日报程序 hai 1 ano
suggester.go e2d46872f2 日报程序 hai 1 ano
suggester_completion.go e2d46872f2 日报程序 hai 1 ano
suggester_completion_fuzzy.go e2d46872f2 日报程序 hai 1 ano
suggester_completion_fuzzy_test.go e2d46872f2 日报程序 hai 1 ano
suggester_completion_test.go e2d46872f2 日报程序 hai 1 ano
suggester_context.go e2d46872f2 日报程序 hai 1 ano
suggester_context_category.go e2d46872f2 日报程序 hai 1 ano
suggester_context_category_test.go e2d46872f2 日报程序 hai 1 ano
suggester_context_geo.go e2d46872f2 日报程序 hai 1 ano
suggester_context_geo_test.go e2d46872f2 日报程序 hai 1 ano
suggester_phrase.go e2d46872f2 日报程序 hai 1 ano
suggester_phrase_test.go e2d46872f2 日报程序 hai 1 ano
suggester_term.go e2d46872f2 日报程序 hai 1 ano
suggester_term_test.go e2d46872f2 日报程序 hai 1 ano
update.go e2d46872f2 日报程序 hai 1 ano
update_test.go e2d46872f2 日报程序 hai 1 ano

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

Current version

This is the source code of the current version of Elastic (version 2).

Earlier versions

If you came from an earlier version and found that you cannot update, don't worry. Earlier versions are still available. All you need to do is go-get them and change your import path. See below for details. Here's what you need to do to use Elastic version 1:

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

Then change your import path:

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

Status

We use Elastic in production since 2012. Although Elastic is quite stable from our experience, we don't have a stable API yet. The reason for this is that Elasticsearch changes quite often and at a fast pace. At this moment we focus on features, not on a stable API.

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 we are in sync with the Elasticsearch API.

Elastic supports and has been tested in production with the following Elasticsearch versions: 0.90, 1.0, 1.1, 1.2, 1.3, and 1.4.

Elasticsearch has quite a few features. A lot of them are not yet implemented in Elastic (see below for details). 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.

Usage

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.

// 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).
    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
    Debug(true).        // print request and response to stdout
    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)) {
    t := item.(Tweet)
    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 != nil {
    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)
}

See the wiki for more details.

API Status

Here's the current API status.

APIs

  • Search (most queries, filters, facets, aggregations etc. are implemented: see below)
  • Index
  • Get
  • Delete
  • Delete By Query
  • Update
  • Multi Get
  • Bulk
  • Bulk UDP
  • Term vectors
  • Multi term vectors
  • Count
  • Validate
  • Explain
  • Search
  • Search shards
  • Search template
  • Facets (most are implemented, see below)
  • Aggregates (most are implemented, see below)
  • Multi Search
  • Percolate
  • More like this
  • Benchmark

Indices

  • Create index
  • Delete index
  • Get index
  • Indices exists
  • Open/close index
  • Put mapping
  • Get mapping
  • Get field mapping
  • Types exist
  • Delete mapping
  • Index aliases
  • Update indices settings
  • Get settings
  • Analyze
  • Index templates
  • Warmers
  • Status
  • Indices stats
  • Indices segments
  • Indices recovery
  • Clear cache
  • Flush
  • Refresh
  • Optimize
  • Upgrade

Snapshot and Restore

  • Snapshot
  • Restore
  • Snapshot status
  • Monitoring snapshot/restore progress
  • Partial restore

Cat APIs

Not implemented. Those are better suited for operating with Elasticsearch on the command line.

Cluster

  • Health
  • State
  • Stats
  • Pending cluster tasks
  • Cluster reroute
  • Cluster update settings
  • Nodes stats
  • Nodes info
  • Nodes hot_threads
  • Nodes shutdown

Query DSL

Queries

  • match
  • multi_match
  • bool
  • boosting
  • common_terms
  • constant_score
  • dis_max
  • filtered
  • fuzzy_like_this_query (flt)
  • fuzzy_like_this_field_query (flt_field)
  • function_score
  • fuzzy
  • geo_shape
  • has_child
  • has_parent
  • ids
  • indices
  • match_all
  • mlt
  • mlt_field
  • nested
  • prefix
  • query_string
  • simple_query_string
  • range
  • regexp
  • span_first
  • span_multi_term
  • span_near
  • span_not
  • span_or
  • span_term
  • term
  • terms
  • top_children
  • wildcard
  • minimum_should_match
  • multi_term_query_rewrite
  • template_query

Filters

  • and
  • bool
  • exists
  • geo_bounding_box
  • geo_distance
  • geo_distance_range
  • geo_polygon
  • geoshape
  • geohash
  • has_child
  • has_parent
  • ids
  • indices
  • limit
  • match_all
  • missing
  • nested
  • not
  • or
  • prefix
  • query
  • range
  • regexp
  • script
  • term
  • terms
  • type

Facets

  • Terms
  • Range
  • Histogram
  • Date Histogram
  • Filter
  • Query
  • Statistical
  • Terms Stats
  • Geo Distance

Aggregations

  • min
  • max
  • sum
  • avg
  • stats
  • extended stats
  • value count
  • percentiles
  • percentile ranks
  • cardinality
  • geo bounds
  • top hits
  • scripted metric
  • global
  • filter
  • filters
  • missing
  • nested
  • reverse nested
  • children
  • terms
  • significant terms
  • range
  • date range
  • ipv4 range
  • histogram
  • date histogram
  • geo distance
  • geohash grid

Sorting

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

Scan

Scrolling through documents (e.g. search_type=scan) are implemented via the Scroll and Scan services. The ClearScroll API is implemented as well.

How to contribute

Read the contribution guidelines.

Credits

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

LICENSE

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