Solr查询(包括分组和排序)的java.lang.OutOfMemoryError

Solr查询(包括分组和排序)的java.lang.OutOfMemoryError,java,solr,lucene,jetty,Java,Solr,Lucene,Jetty,当我对多个字段进行分组和排序时,Solr给了我java.lang.OutOfMemoryError:java堆空间。对于匹配少量文档的条件,查询运行良好 这是我正在进行的查询: q=*%3A*&fq=DOCUMENT_TYPE%3APROPERTY&fq=%7B%21tag%3DCITY_ID%7DCITY_ID%3A%282%29&fq=%7B%21tag%3DLOCALITY_ID%7DLOCALITY_ID%3A%2850186%29&fq=%7B%21ta

当我对多个字段进行分组和排序时,Solr给了我
java.lang.OutOfMemoryError:java堆空间
。对于匹配少量文档的条件,查询运行良好

这是我正在进行的查询:

q=*%3A*&fq=DOCUMENT_TYPE%3APROPERTY&fq=%7B%21tag%3DCITY_ID%7DCITY_ID%3A%282%29&fq=%7B%21tag%3DLOCALITY_ID%7DLOCALITY_ID%3A%2850186%29&fq=%7B%21tag%3DUNIT_TYPE%7DUNIT_TYPE%3A%28"Apartment"+OR+"Villa"%29&rows=9999&start=0&sort=DISPLAY_ORDER+asc%2CPROJECT_PRIORITY+asc%2CPROJECT_ID+desc&group=true&group.ngroups=true&group.limit=-1&group.field=PROJECT_ID&group.sort=BEDROOMS+asc%2CSIZE+asc
下面是结果stacktrace

SEVERE: null:java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space
        at org.apache.solr.servlet.SolrDispatchFilter.sendError(SolrDispatchFilter.java:469)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:297)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1337)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:486)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
        at org.eclipse.jetty.server.Server.handle(Server.java:351)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
        at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:47)
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
        at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:66)
        at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:254)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.OutOfMemoryError: Java heap space
当我删除排序和分组部分时,查询运行良好。所以,问题显然就在这里

以下是我在启动时分配给solr的内存:

java -Xms512M -Xmx2048M -jar start.jar
我认为这足以满足我的需要:

Total no of documents in my collection: 237816
Total no of matching documents in the query: 910
下面是与排序和分组中使用的字段相对应的schema.xml的摘录:

<field name="DISPLAY_ORDER" type="int" indexed="true" stored="true"/>
<field name="PROJECT_PRIORITY" type="double" indexed="true" stored="true"/>
<field name="PROJECT_ID" type="int" indexed="true" stored="true"/>
<field name="BEDROOMS" type="int" indexed="true" stored="true"/>
<field name="SIZE" type="sdouble" indexed="true" stored="true"/>

<fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true"/>


提前谢谢

嗨,我最近也收到了类似的问题。你做了哪些有帮助的更新?我将非常感激。@qasimzee:我增加了分配给JVM的内存,并推迟了永久解决方案。。。如果你能找到一个永久的解决办法,请告诉我。昨天,我也做了同样的事情。我还试图找到永久解决方案,因为我们的指数很快将超过10千兆:)