module elasticsearch.api.actions.count; import elasticsearch.api.parameters; import elasticsearch.transport; import elasticsearch.client; import vibe.http.common; Response count(Client client, ESParams arguments = ESParams()) { string index = arguments.hasField("index") ? arguments["index"] : "_all"; string type = arguments.hasField("type") ? arguments["type"] : ""; arguments.defaultParameter("body", ""); auto params = arguments.validateAndExtract( "analyzer", "analyze_wildcard", "default_operator", "df", "ignore_unavailable", "allow_no_indices", "expand_wildcards", "lenient", "lowercase_expanded_terms", "preference", "q", "routing" ); auto path = esPathify(esListify(index), esListify(type), "_count"); return client.performRequest(RequestMethod.GET, path, params, arguments["body"]); } /// Ditto uint count(Client client, string index, string query, ESParams params = ESParams()) { params["index"] = index; if (query.length) params["body"] = query; auto result = count(client, params); if (result.status != 200) return 0; return result.jsonBody["count"].get!uint; } /// Ditto uint count(Client client, string index, ESParams params = ESParams()) { return count(client, index, "", params); }