2012-02-20 17 views
5

Solr 3.5 tarafından indekslenen ve diğerleri arasında tarih alanları (solr.DateField) bulunan bir dizi dokümana sahibim. Şimdi hiçbir sonuç dönmelidir Solr bileşenine isteği yapın:Bölümü Solr StatsComponent tarafından sıfır hata sonucu hiçbir sonuç çıkmaması durumunda tarih alanı için

http://example.com/solr/select?fq=sis_field_int:1000& 
stats=true&stats.field=ds_field_date 

ve almak hata

HTTP Status 500 -/by zero java.lang.ArithmeticException:/by zero at 
org.apache.solr.handler.component.DateStatsValues.addTypeSpecificStats 
(StatsValuesFactory.java:384) at ... 

Ben isteği gönderirseniz istatistik parçası olmadan veya onun yerine tarih dışında istatistik alanını belirtmek beklediğimden olsun sonuçsuz yanıt. Solr denen bir hataya benziyor. Bu durumda ortalama değeri hesaplamak için. Ne yazık ki bu sorun hakkında herhangi bir referans bulunamadı. Sorunu atlamak veya çözmek için bir yol var mı?

cevap

6

Sorunun ortalama değerini hesaplama edilir haklısın:

res.add("mean", new Date(sum/count)); 

sum ve count hem long bulunmaktadır. count sıfır olduğunda, tabiki ArithmeticException alırsınız. Aslinda endeksinizde asla bir deger bulunmayan bir tarih alaninda istatistik yapiyorsunuz. En kolay çözüm, en az bir değere sahip bir alandaki istatistikleri oluşturuyordu, bu nedenle count değişkeni sıfırdan farklı olurdu, bölüm işe yarayacak ve istatistikler tahmin edeceğim daha anlamlı olacaktı.

Aynı hatayı sayısal bir alan kullanarak aynı hatayı almazsınız, çünkü bu durumda toplam değişkeni double olur, bu nedenle bölüm hata vermez ve sonuç NaN olur. Aslında, alan tipine bağlı olarak farklı StatsValues uygulamaları vardır.

GÜNCELLEME
Ben SOLR-3160 jira sorunu açılıp sadece işlendiğine bir yama sağladık. Solr'un bir sonraki sürümü düzeltmeyi içerecek!

+0

Sayımın sıfıra eşit olup olmadığını kontrol etmiyor mu? Başka bir HTTP HTTP yanıtı diğer Solr istekte bu hata başka bir işleyici ayarlamak için herhangi bir yolu var mı? – dev4

+0

@ dev4 Çek yok! Yapacak en iyi şeyin bir jira sorunu olduğunu düşünüyorum. Eğer istersen bir yama bile verebilirsin, yoksa eminim ki birisi ona bakacak, ben de yapabilirim. – javanna

+1

@ dev4 Güncellenmiş yanıtıma bak! Düzeltme zaten yapıldı, bir sonraki Solr sürümü ile mevcut olacak! – javanna

İlgili konular