javasolrspring-dataspring-data-solr

Spring-data-solr data import handler call


I'm using spring-data-solr and have data import handler(DIH) in solr. How can I call DIH by repository or SolrTemplate, or some else?


Solution

  • I'd recommend a Custom Respository using SolrCallback to execute desired request.

        @Override
        public SolrResponse dataImport(final String command) {
    
          return solrTemplate.execute(new SolrCallback<SolrResponse>() {
    
            @Override
            public SolrResponse doInSolr(SolrServer solrServer) throws SolrServerException, IOException {
              return new SolrRequest(METHOD.GET, "/dataimport?command=" + command) {
    
                //..skipped some methods to shorten
    
                @Override
                public SolrResponse process(SolrServer server) throws SolrServerException, IOException {
                  SolrResponseBase response = new SolrResponseBase();
                  response.setResponse(server.request(this));
                  return response;
                }
    
              }.process(solrServer);
    
            }
          });
        }