@Override
	public boolean initialize() {
		if (initialized) {
			return true;
		}
		try {
			ClientUtil.getClientAuthenticator();	// Make sure an authenticator is installed
			final Configuration config = new Configuration();
			initializeElastic(config);
			info = config.info;
			vectorFactory.set(config.weightfactory, config.idflookup, config.info.settings);
		}
		catch (ElasticException err) {
			lastError = new BSimError(ErrorCategory.Initialization,
				"Database error on initialization: " + err.getMessage());
			status = Status.Error;
			return false;
		}
		catch (NoDatabaseException err) {
			info = null;
			lastError = new BSimError(ErrorCategory.Nodatabase,
				"Database has not been created yet: " + err.getMessage());
			initialized = true;
			status = Status.Ready;
			return true;
		}
		status = Status.Ready;
		initialized = true;
		return true;
	}
Initialize a new BSim repository.  This does most of the work of reading
configuration info and setting up the various factories.
@param config is the Configuration object that is populated during initialization
@throws ElasticException for communication problems with the server
@throws NoDatabaseException if the specific database does not exist on the server
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/elastic/ElasticDatabase.java