searchUsers

Return users matching the given filter.


searchUsers(filters, [options], callback)

Arguments Type Description
filters JSON Object Filter in Elasticsearch's Query DSL format
options JSON Object Optional parameters
callback function Callback handling the response

Options

Option Type Description Default
from number Starting offset 0
queuable boolean Make this request queuable or not true
scroll string Start a scroll session, with a time to live equals to this parameter's value following the Elastisearch time format undefined
size number Number of hits to return per result page 10

To get more information about scroll sessions, please refer to the API reference documentation.


Callback Response

Return a JSON Object

Usage

Copied to clipboard!

JSONObject filter = new JSONObject()
  .put("bool", new JSONObject()
    .put("must", new JSONArray()
      .put(new JSONObject()
        .put("terms", new JSONObject()
          .put("profileIds", new JSONArray().put("anonymous").put("default"))
        )
      )
      .put(new JSONObject()
        .put("geoDistance", new JSONObject()
          .put("distance", "10km")
          .put("pos", new JSONObject()
            .put("lat", 48.8566140)
            .put("lon", 2.352222)
          )
        )
      )
    )
  );

// optional: result pagination configuration
Options options = new Options();
options.setFrom((long) 0);
options.setSize((long) 42);
options.setScroll("1m");

kuzzle
  .security
  .searchUsers(filters, options, new ResponseListener<SecurityDocumentList>() {
    @Override
    public void onSuccess(SecurityDocumentList users) {
      // users.getDocuments() returns an users list
      for(User user : users.getDocuments()) {

  }

  // Total number of profiles, regardless of pagination
  long total = users.getTotal();

  // Available only if a "scroll" option has been provided
  String scrollId = users.getScroll()
    }

  @Override
  public void onError(JSONObject error) {

    }
  });

Callback response:

Copied to clipboard!
{
  "total": 124,
  "users": [
    // array of User objects
  ],
  // only if a scroll parameter has been provided
  "scrollId": "<scroll identifier>"
}