@Override
	public void onIndexModule(IndexModule indexModule) {
		super.onIndexModule(indexModule);

		Settings settings = indexModule.getSettings();
		String name = null;
		// Look for the specific kind of tokenizer settings, within the global settings for the index
		for (String key : settings.keySet()) {
			if (key.startsWith(TOKENIZER_SETTINGS_BASE)) {
				// We can have different settings for different indices, distinguished by this name
				int pos = key.indexOf('.', TOKENIZER_SETTINGS_BASE.length() + 1);
				if (pos > 0) {
					name = key.substring(TOKENIZER_SETTINGS_BASE.length(), pos);
					break;
				}
			}
		}
		if (name != null) {
			String tokenizerName = "lsh_" + name;
			if (getVectorFactory(tokenizerName) != null) {
				return;		// Factory already exists
			}
			settingString = settingString + " : onModule(" + name + ')';
			// If we found LSH tokenizer settings, pull them out and construct an LSHVectorFactory with them
			String baseKey = TOKENIZER_SETTINGS_BASE + name + '.';
			String idfConfig = settings.get(baseKey + ElasticUtilities.IDF_CONFIG);
			String lshWeights = settings.get(baseKey + ElasticUtilities.LSH_WEIGHTS);
			if (idfConfig == null || lshWeights == null) {
				return;		// IDF_CONFIG and LSH_WEIGHTS settings must be present to proceed
			}
			setupVectorFactory(tokenizerName, idfConfig, lshWeights);
		}
	}
Entry point for Tokenizer and Script factories to grab the global vector factory
@param name is the name of the tokenizer
@return the vector factory used by the tokenizer
Ghidra/Extensions/BSimElasticPlugin/src/org/elasticsearch/plugin/analysis/lsh/AnalysisLSHPlugin.java