When writing or deleting security and internal documents (users, roles, profiles, configuration, etc.) in Kuzzle, the update needs to be indexed before being reflected in the search index.

The refreshInternal action forces a refresh, on the internal index, making the documents available to search immediately.

A refresh operation comes with some performance costs.

From Elasticsearch documentation: "While a refresh is much lighter than a commit, it still has a performance cost. A manual refresh can be useful when writing tests, but don’t do a manual refresh every time you index a document in production; it will hurt your performance. Instead, your application needs to be aware of the near real-time nature of Elasticsearch and make allowances for it."


Copied to clipboard!
RefreshInternal(options types.QueryOptions) error

Arguments Type Description
Query options


The options arguments can contain the following option properties:

Option Type (default) Description
bool (true)
If true, queues the request during downtime, until connected to Kuzzle again


Return an error or nil if index successfully refreshed.


Copied to clipboard!
err := kuzzle.Index.RefreshInternal(nil)
if err != nil {
} else {
  fmt.Println("Internal index successfully refreshed")