solrのグループ機能の使用に問題があります。私は単にこの機能を使用できません。これが問題の説明です。
私が使用するグループフィールドは次のように定義されています。
フィールド名="clusterid"type = "string" indexed = "true" Stored = "true" multiValued = "false"
インデックス付けされた「clusterid」フィールドには有効な値があります。
最初は、上記のフィールドでSolrjクライアントAPIを使用して「グループ」機能を使用してみました。「HTTPステータス500内部サーバーエラー...」が発生し始めました。構文またはパラメータの順序が問題になる可能性があると想定して、Firefoxブラウザを使用して同じ機能をテストすることにしました。
.../solr/select/?q=title%3Acomputer
有効なclusteridを使用して一連の優れた結果が得られます。
ただし、clusteridフィールドを使用して結果をグループ化しようとすると、nullポインター例外が発生します。これがグループ化に使用されたURLです
.../solr/select/?q=title%3Acomputer&group=true&group.field=clusterid
応答は
タイプステータスレポート
メッセージnulljava.lang.NullPointerExceptionat org.apache.solr.handler.clustering.ClusteringComponent.process(ClusteringComponent.java:89)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)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)atorg。 apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:588)at org.apache.tomcat.util.net.JIoEndpoint $ java.lang.Thread.run(Thread.java:662)のWorker.run(JIoEndpoint.java:489)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)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)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)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)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)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)java:109)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)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 )。java:109)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)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 )。
注:私はWindowsXPでsolrバージョン3.6.2を使用しています。solrconfigファイルには、デフォルトのメモリ設定(値を増やす)の変更のみがあります。
複数値フィールドをグループフィールドとして使用しようとすると、「複数値」フィールドをグループ化に使用できないという応答メッセージが非常に明確になりました。文字列以外のフィールドでテストしたところ、文字列フィールドなどではないという応答が返されました。
しかし、文字列型のフィールド(clusteridまたは文字列型の他のフィールド)が提供された場合、nullポインター例外がスローされました。
(スキーマまたはsolrconfigファイルで)明らかなものを見逃していませんか?