code: public com.squareup.okhttp.Call getCharactersCharacterIdSearchAsync(List<String> categories, Integer characterId,
              String search, String acceptLanguage, String datasource, String ifNoneMatch, String language,
              Boolean strict, String token, final ApiCallback<CharacterSearchResponse> callback) throws ApiException {
  
          com.squareup.okhttp.Call call = getCharactersCharacterIdSearchValidateBeforeCall(categories, characterId,
                  search, acceptLanguage, datasource, ifNoneMatch, language, strict, token, callback);
          Type localVarReturnType = new TypeToken<CharacterSearchResponse>() {
          }.getType();
          apiClient.executeAsync(call, localVarReturnType, callback);
          return call;
      }
docs: Search on a string (asynchronously) Search for entities that match a
  given sub-string. --- This route is cached for up to 3600 seconds SSO
  Scope: esi-search.search_structures.v1
  
  @param categories
  Type of entities to search for (required)
  @param characterId
  An EVE character ID (required)
  @param search
  The string to search on (required)
  @param acceptLanguage
  Language to use in the response (optional, default to en-us)
  @param datasource
  The server name you would like data from (optional, default to
  tranquility)
  @param ifNoneMatch
  ETag from a previous request. A 304 will be returned if this
  matches the current ETag (optional)
  @param language
  Language to use in the response, takes precedence over
  Accept-Language (optional, default to en-us)
  @param strict
  Whether the search should be a strict match (optional, default
  to false)
  @param token
  Access token to use if unable to set a header (optional)
  @param callback
  The callback to be executed when the API call finishes
  @return The request call
  @throws ApiException
  If fail to process the API call, e.g. serializing the request
  body object