private synchronized void removeFile(String fileId) {
		// brute force search through all entries to remove the file
		for (IndexInfo index : indexes) {
			for (Iterator<Object> it = index.indexedFiles.values().iterator(); it.hasNext();) {
				Object fileInfo = it.next();
				if (fileInfo instanceof String fileIdStr && fileIdStr.equals(fileId)) {
					it.remove();
				}
				else if (fileInfo instanceof List fileInfoList) {
					fileInfoList.remove(fileId);
					if (fileInfoList.isEmpty()) {
						it.remove();
					}
				}
			}
		}
	}
@param indexType IndexType enum
@param mappingFunc bifunc that returns value that will be used to lookup the file
@param indexedFiles map of index keyvalue to fileId (either string or list of strings)
Ghidra/Features/Base/src/main/java/ghidra/plugin/importer/ProjectIndexService.java