I recommend to integrate log4j2 into the app instead of using println. Then you 
will see all the log statements including the one of Solr in a log file that 
will indicate you the issue.

> Am 01.11.2019 um 07:46 schrieb Khare, Kushal (MIND) 
> <kushal.kh...@mind-infotech.com>:
> 
> Hello mates !
> Hope you people are doing good !
> 
> Well, I am trying to integrate the SolrJ code for indexing and querying the 
> documents through Solr with my java web app. I am facing a very wired issue, 
> that when I run my method for Solr as java app (independently using main() 
> function) it works fine- extracts text , searches. But, as soon as I give the 
> hit through my web app from search page, it hits, function is being called, 
> but it does not extracts any text from docs, and is unable to search.
> 
> I verified all the jars, etc. but could not figure out anything. Following is 
> the code that I am using :
> 
> 
> package com.mind.qdms.utility;
> 
> import java.io.File;
> import java.io.FileInputStream;
> import java.io.IOException;
> import java.io.InputStream;
> import java.util.ArrayList;
> import java.util.Collection;
> import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
> import org.apache.solr.client.solrj.SolrServerException;
> import org.apache.solr.client.solrj.impl.HttpSolrClient;
> import org.apache.solr.client.solrj.response.QueryResponse;
> import org.apache.solr.client.solrj.response.UpdateResponse;
> import org.apache.solr.common.SolrDocument;
> import org.apache.solr.common.SolrDocumentList;
> import org.apache.solr.common.SolrInputDocument;
> import org.apache.solr.common.params.MapSolrParams;
> import org.apache.tika.metadata.Metadata;
> import org.apache.tika.parser.AutoDetectParser;
> import org.apache.tika.parser.ParseContext;
> import org.apache.tika.sax.BodyContentHandler;
> import org.xml.sax.ContentHandler;
> 
> 
> public class QdmsSolrUtilityMethods {
> 
> 
> 
>         public static void main(String[] args) throws IOException,
>         SolrServerException { QdmsSolrUtilityMethods.getDocsList("kushal"); }
> 
> 
>       public static List<String> getDocsList(String keyword) throws 
> IOException, SolrServerException {
>              System.out.println("in util");
>              HttpSolrClient client = new 
> HttpSolrClient.Builder("http://localhost:8983/solr/tika";).build();
>              AutoDetectParser autoParser = new AutoDetectParser();
>              indexTikaDocuments(new File("D:\\docs"), client, autoParser);
>              List<String> resultDocList = queryDocuments(client, keyword);
>              return resultDocList;
>       }
> 
>       public static void indexTikaDocuments(File root,HttpSolrClient
>         client,AutoDetectParser autoParser) throws IOException, 
> SolrServerException {
>         int totalTika = 0;
> 
>         @SuppressWarnings("rawtypes") Collection docList = new ArrayList();
> 
>         for (File file : root.listFiles()){
>                if (file.isDirectory()) {
>                       indexTikaDocuments(file,client,autoParser);
>                       continue;
>                }
>                ContentHandler textHandler = new BodyContentHandler(-1);
>                Metadata metadata = new Metadata();
>                ParseContext context = new ParseContext();
>                InputStream input = new
>                FileInputStream(file);
>                try {
>                autoParser.parse(input, textHandler, metadata, context);
>                }catch (Exception e) {
>                System.out.println(String.format("File %s failed", 
> file.getCanonicalPath()));
>                e.printStackTrace();
>                continue;
>                }
>                SolrInputDocument doc = new SolrInputDocument();
>                doc.addField("id", file.getCanonicalPath());
>                doc.addField("_text_", textHandler.toString());
>                docList.add(doc);
>                System.out.println(textHandler.toString());
>                System.out.println( file.getCanonicalPath()); ++totalTika;
>                // Completely arbitrary, just batch up more than one document 
> for throughput!
>                if(docList.size() >= 1000) {
>                       // Commit within 5 minutes.
>                       UpdateResponse resp = client.add(docList, 300000);
>                       if (resp.getStatus() != 0) {
>                             System.out.println("Some horrible error has 
> occurred, status is: " +
>                             resp.getStatus());
>                             }
>                       docList.clear();
>                       }
>                }if(docList.size() > 0) {
>                       client.add(docList, 300000);
>                     } client.commit();
>                System.out.println("indexed " + totalTika + " documents");
>                }
> 
>       public static List<String> queryDocuments(HttpSolrClient client1, 
> String queryTerm) throws SolrServerException, IOException {
>              List<String> resultList = null;
>              HttpSolrClient client = new 
> HttpSolrClient.Builder("http://localhost:8983/solr";).build();
> 
>              final Map<String, String> queryParamMap = new HashMap<String, 
> String>();
>              queryParamMap.put("q", queryTerm);
>              queryParamMap.put("rows", "5000");
>              MapSolrParams queryParams = new MapSolrParams(queryParamMap);
> 
>              final QueryResponse response = client.query("tika", queryParams);
>              final SolrDocumentList docList = response.getResults();
> 
>              System.out.println("docList ::  "+docList);
>              System.out.println("docList size ::  "+docList.size());
> 
>              for (SolrDocument document : docList) {
>                     final String id = (String) document.getFirstValue("id");
>                     resultList.add(id);
>              }
>              return resultList;
>       }
> 
> 
> }
> 
> 
> 
> Please help me with this.
> 
> Thanks!
> 
> ________________________________
> 
> The information contained in this electronic message and any attachments to 
> this message are intended for the exclusive use of the addressee(s) and may 
> contain proprietary, confidential or privileged information. If you are not 
> the intended recipient, you should not disseminate, distribute or copy this 
> e-mail. Please notify the sender immediately and destroy all copies of this 
> message and any attachments. WARNING: Computer viruses can be transmitted via 
> email. The recipient should check this email and any attachments for the 
> presence of viruses. The company accepts no liability for any damage caused 
> by any virus/trojan/worms/malicious code transmitted by this email. 
> www.motherson.com

Reply via email to