Search in sources :

Example 1 with MCRSolrInputDocumentsHandler

use of org.mycore.solr.index.handlers.document.MCRSolrInputDocumentsHandler in project mycore by MyCoRe-Org.

the class MCRSolrFilesIndexHandler method indexDerivate.

protected void indexDerivate(MCRObjectID derivateID) throws IOException {
    MCRPath rootPath = MCRPath.getPath(derivateID.toString(), "/");
    final MCRSolrIndexHandlerFactory ihf = MCRSolrIndexHandlerFactory.getInstance();
    final List<MCRSolrIndexHandler> subHandlerList = this.subHandlerList;
    final List<SolrInputDocument> docs = new ArrayList<>();
    final SolrClient solrClient = this.solrClient;
    Files.walkFileTree(rootPath, new SimpleFileVisitor<Path>() {

        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
            boolean sendContent = ihf.checkFile(file, attrs);
            try {
                if (sendContent) {
                    subHandlerList.add(ihf.getIndexHandler(file, attrs, solrClient, true));
                } else {
                    SolrInputDocument fileDoc = MCRSolrPathDocumentFactory.getInstance().getDocument(file, attrs);
                    docs.add(fileDoc);
                }
            } catch (Exception ex) {
                LOGGER.error("Error creating transfer thread", ex);
            }
            return super.visitFile(file, attrs);
        }
    });
    int fileCount = subHandlerList.size() + docs.size();
    LOGGER.info("Sending {} file(s) for derivate \"{}\"", fileCount, derivateID);
    if (!docs.isEmpty()) {
        MCRSolrInputDocumentsHandler subHandler = new MCRSolrInputDocumentsHandler(docs, solrClient);
        subHandler.setCommitWithin(getCommitWithin());
        this.subHandlerList.add(subHandler);
    }
}
Also used : MCRPath(org.mycore.datamodel.niofs.MCRPath) Path(java.nio.file.Path) MCRSolrInputDocumentsHandler(org.mycore.solr.index.handlers.document.MCRSolrInputDocumentsHandler) ArrayList(java.util.ArrayList) MCRSolrIndexHandler(org.mycore.solr.index.MCRSolrIndexHandler) FileVisitResult(java.nio.file.FileVisitResult) IOException(java.io.IOException) IOException(java.io.IOException) SolrServerException(org.apache.solr.client.solrj.SolrServerException) SolrInputDocument(org.apache.solr.common.SolrInputDocument) MCRSolrIndexHandlerFactory(org.mycore.solr.index.handlers.MCRSolrIndexHandlerFactory) SolrClient(org.apache.solr.client.solrj.SolrClient) MCRPath(org.mycore.datamodel.niofs.MCRPath) BasicFileAttributes(java.nio.file.attribute.BasicFileAttributes)

Aggregations

IOException (java.io.IOException)1 FileVisitResult (java.nio.file.FileVisitResult)1 Path (java.nio.file.Path)1 BasicFileAttributes (java.nio.file.attribute.BasicFileAttributes)1 ArrayList (java.util.ArrayList)1 SolrClient (org.apache.solr.client.solrj.SolrClient)1 SolrServerException (org.apache.solr.client.solrj.SolrServerException)1 SolrInputDocument (org.apache.solr.common.SolrInputDocument)1 MCRPath (org.mycore.datamodel.niofs.MCRPath)1 MCRSolrIndexHandler (org.mycore.solr.index.MCRSolrIndexHandler)1 MCRSolrIndexHandlerFactory (org.mycore.solr.index.handlers.MCRSolrIndexHandlerFactory)1 MCRSolrInputDocumentsHandler (org.mycore.solr.index.handlers.document.MCRSolrInputDocumentsHandler)1