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

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.