List of usage examples for org.apache.solr.schema IndexSchema getResourceLoader
public SolrResourceLoader getResourceLoader()
From source file:edu.upenn.library.solrplugins.CaseInsensitiveSortingTextField.java
License:Apache License
@Override protected void init(IndexSchema schema, Map<String, String> args) { SolrResourceLoader loader = schema.getResourceLoader(); if (args.containsKey(SERIALIZER_ARGNAME)) { serializer = loader.newInstance(args.remove(SERIALIZER_ARGNAME), TextTransformer.class); }// ww w. j a v a 2s .c o m if (args.containsKey(DISPLAYIZER_ARGNAME)) { displayizer = loader.newInstance(args.remove(DISPLAYIZER_ARGNAME), TextTransformer.class); } if (args.containsKey(PAYLOAD_HANDLER_ARGNAME)) { payloadHandler = loader.newInstance(args.remove(PAYLOAD_HANDLER_ARGNAME), FacetPayload.class); } else { payloadHandler = new DefaultPayloadHandler(); } if (args.containsKey(HIERARCHY_LEVEL_ARGNAME)) { hierarchyLevel = loader.newInstance(args.remove(HIERARCHY_LEVEL_ARGNAME), Integer.class); } delim = initDelim(hierarchyLevel); delimBytes = delim.getBytes(StandardCharsets.UTF_8); super.init(schema, args); }
From source file:org.alfresco.solr.AlfrescoDataType.java
License:Open Source License
@Override protected void init(IndexSchema schema, Map<String, String> args) { HashMap<String, M2Model> modelMap = new HashMap<String, M2Model>(); id = schema.getResourceLoader().getInstanceDir(); File alfrescoModelDir = new File(id, "alfrescoModels"); if (alfrescoModelDir.exists() && alfrescoModelDir.isDirectory()) { for (File file : alfrescoModelDir.listFiles(new FileFilter() { @Override/*from w w w. j a v a 2 s .com*/ public boolean accept(File pathname) { return pathname.isFile() && pathname.getName().endsWith(".xml"); } })) { InputStream modelStream; try { modelStream = new FileInputStream(file); M2Model model = M2Model.createModel(modelStream); modelStream.close(); for (M2Namespace namespace : model.getNamespaces()) { modelMap.put(namespace.getUri(), model); } } catch (FileNotFoundException e) { throw new AlfrescoRuntimeException("File not found", e); } catch (IOException e) { throw new AlfrescoRuntimeException("File not found", e); } } } // Load the models ensuring that they are loaded in the correct order HashSet<String> loadedModels = new HashSet<String>(); for (M2Model model : modelMap.values()) { loadModel(modelMap, loadedModels, model); } // TODO: load analyser properties bundle // I18NUtil.registerResourceBundle(resourceBundle); - one set of analysers per solr instance ?? // InputStream is = schema.getResourceLoader().openResource("alfrescoConfig.xml"); // Config alfrescoConf; // try // { // alfrescoConf = new Config(schema.getResourceLoader(), "schema", is, "/alfresco/"); // Document document = alfrescoConf.getDocument(); // final XPath xpath = alfrescoConf.getXPath(); // // String expression = "/alfresco/model"; // NodeList nodes = (NodeList) xpath.evaluate(expression, document, XPathConstants.NODESET); // // for (int i = 0; i < nodes.getLength(); i++) // { // Node node = nodes.item(i); // String modelLocaltion = node.getTextContent(); // InputStream modelStream = schema.getResourceLoader().openResource(modelLocaltion); // M2Model model = M2Model.createModel(modelStream); // for (M2Namespace namespace : model.getNamespaces()) // { // modelMap.put(namespace.getUri(), model); // } // } // // // Load the models ensuring that they are loaded in the correct order // HashSet<String> loadedModels = new HashSet<String>(); // for (M2Model model : modelMap.values()) // { // loadModel(modelMap, loadedModels, model); // } // // } // catch (Exception e) // { // throw new AlfrescoRuntimeException("Failed to read Alfresco schema", e); // } if (modelMap.size() > 0) { AlfrescoSolrDataModel.getInstance(id).afterInitModels(); } AlfrescoSolrDataModel.getInstance(id).setAlfrescoDataType(this); super.init(schema, args); }