我在使用 solr 的组功能时遇到问题。我根本无法使用该功能。这是问题的描述。
我使用的组字段定义如下。
字段名称="clusterid" type="string" indexed="true" 存储="true" multiValued="false"
索引的“clusterid”字段具有有效值。
最初,我尝试在上述字段中使用 Solrj 客户端 API 使用“组”功能。我开始收到“HTTP 状态 500 内部服务器错误...”假设参数的语法或顺序可能是一个问题,我决定使用 firefox 浏览器测试相同的功能。
.../solr/select/?q=title%3Acomputer
使用有效的 clusterid 产生一组很好的结果。
但是,当我尝试使用 clusterid 字段对结果进行分组时,我得到一个空指针异常。这是用于分组的 url
.../solr/select/?q=title%3Acomputer&group=true&group.field=clusterid
回应是
类型状态报告
org.apache.solr.handler.clustering.ClusteringComponent.process(ClusteringComponent.java:89) 处 org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:186) 处的消息 null java.lang.NullPointerException org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) 在 org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) 在 org.apache.solr.servlet.SolrDispatchFilter.execute( SolrDispatchFilter.java:365) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve 的 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) .invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org. apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 在 org.apache.tomcat.util.net.JIoEndpoint$ Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:662)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) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 在 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)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) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 在 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)java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 在 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 )java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 在 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 )
注意:我在 Windows XP 上使用 solr 版本 3.6.2。solrconfig 文件仅对默认设置的内存设置(增加值)进行了更改。
当我尝试使用多值字段作为分组字段时,响应消息非常清楚“多值”字段不能用于分组。当我使用非字符串字段进行测试时,我再次收到那些不是字符串字段等的响应。
但是,当提供了字符串类型的字段(clusterid 或任何其他字符串类型的字段)时,会抛出空指针异常。
我是否遗漏了任何明显的内容(在架构或 solrconfig 文件中)?