Hi,
Im using Solr 3.6 on Tomcat 6, Xmx is set to 4096m.
I have indexed about 61075834 documents using shingle filter with max
shingle size 3. Basically i have a lot of terms. Whenever i request 3-4
queries at a time to to get the termvector component, I get the following
exception.
SEVERE: java.lang.OutOfMemoryError: Java heap space
at
org.apache.lucene.search.HitQueue.getSentinelObject(HitQueue.java:76)
at
org.apache.lucene.search.HitQueue.getSentinelObject(HitQueue.java:22)
at
org.apache.lucene.util.PriorityQueue.initialize(PriorityQueue.java:116)
at org.apache.lucene.search.HitQueue.<init>(HitQueue.java:67)
at
org.apache.lucene.search.TopScoreDocCollector.<init>(TopScoreDocCollector.java:275)
at
org.apache.lucene.search.TopScoreDocCollector.<init>(TopScoreDocCollector.java:37)
at
org.apache.lucene.search.TopScoreDocCollector$InOrderTopScoreDocCollector.<init>(TopScoreDocCollector.java:42)
at
org.apache.lucene.search.TopScoreDocCollector$InOrderTopScoreDocCollector.<init>(TopScoreDocCollector.java:40)
at
org.apache.lucene.search.TopScoreDocCollector.create(TopScoreDocCollector.java:258)
at
org.apache.lucene.search.TopScoreDocCollector.create(TopScoreDocCollector.java:238)
at
org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1285)
at
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1178)
at
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:377)
at
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:394)
at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:186)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Even if the query returns data it takes a lot of time around 230
sec (Qtime= 230000). Is there any way to optimize my index.
--
*With Thanks,*
*Manivannan *