/** * Loads an index if it is not already loaded. * * @param name - The name of the * @return * @throws IOException * @throws ConfigurationException */ private IndexHelper loadIndex(String name) throws IOException, ConfigurationException { if (env.hasIndex(name)) { return env.getIndex(name); } info("loading index " + name); JSONObject indexConfig = configuration.getIndex(name); File parentDir = requireDirectory(configuration.getIndexes(), "outputDir"); IndexHelper helper = new IndexHelper(new File(parentDir, name), true); if (indexConfig.containsKey("similarity")) { String sim = requireString(indexConfig, "similarity"); if (sim.equals("ESA")) { helper.getSearcher().setSimilarity(new ESASimilarity.LuceneSimilarity()); } else { throw new ConfigurationException("unknown similarity type: " + sim); } } if (indexConfig.containsKey("analyzer")) { String analyzer = requireString(indexConfig, "analyzer"); if (analyzer.equals("ESA")) { helper.setAnalyzer(new ESAAnalyzer()); } else { throw new ConfigurationException("unknown analyzer type: " + analyzer); } } env.addIndex(name, helper); return helper; }