/** * 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; }
/** * Loads indexes and puts them in the environment. * * @throws ConfigurationException * @throws IOException */ public void loadIndexes() throws ConfigurationException, IOException { info("loading indexes"); Collection<String> namesToSkip = Arrays.asList("inputDir", "outputDir"); for (String name : (Set<String>) configuration.getIndexes().keySet()) { if (namesToSkip.contains(name)) { continue; } loadIndex(name); } }