2013-02-07 55 views
0

我有問題使用solr的組特徵。我根本無法使用該功能。這是對問題的描述。solr group.field nullpointer例外

我使用的組字段定義如下。

字段名=「羣ID」類型=「字符串」索引=「真正的」存儲=「真正的」多值=「假」

的索引「羣ID」字段有效值。

最初,我嘗試在上面的字段上使用Solrj客戶端API使用「組」功能。我開始得到「HTTP狀態500內部服務器錯誤...」假設參數的語法或順序可能是一個問題,我決定使用Firefox瀏覽器測試相同的功能。

.../solr/select/?q=title%3Acomputer 

通過有效的clusterid(s)產生一組不錯的結果。

但是,當我嘗試使用clusterid字段對結果進行分組時,出現空指針異常。下面是用於分組

.../solr/select/?q=title%3Acomputer&group=true&group.field=clusterid 

URL和反應是在 org.apache.solr.handler

類型狀態報告

消息空顯示java.lang.NullPointerException。 clustering.ClusteringComponent.process(ClusteringComponent.java:89) 在 org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:186) 在 組織。 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) 在 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.co re.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve。的java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 有機.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) at java.lang.Thread.run(Thread。java:662)

注意:我在Windows XP上使用solr版本3.6.2。 solrconfig文件只對內存設置進行更改(增加值)。

當我嘗試使用多值字段作爲組字段時,響應消息非常明確,「multiValued」字段不能用於分組。當我使用非字符串字段進行測試時,我又得到了那些不是字符串字段等的響應。

但是,當提供字符串類型的字段(clusterid或任何其他字符串類型的字段)時 - null指針異常被拋出。

我是否錯過任何明顯的內容(在模式或solrconfig文件中)?

+0

我試圖在Solr 3.6分組中搜索結果中的某些文檔中缺少的字符串字段,它仍然沒有拋出NPE。它爲這些文檔提供'groupValue'作爲null,所以這很奇怪。 – arun

+0

爲什麼調用ClusteringComponent?你在發射羣集查詢嗎? – Jayendra

回答

0

我使用Solr 6.3面臨同樣的問題。看起來,集羣組件(您顯然使用的)無法從組響應中提取所需的數據。我發現唯一的解決方法是啓用突出顯示,然後羣集似乎工作;但是這帶來了顯着的性能損失。但是,如果你的結果尺寸很小,它可能是你的選擇;對於更大的結果(> 200-300個文檔),集羣似乎需要更多的時間而不是突出顯示。我使用的是Lingo算法,也許使用STC會更好。