Solr

2011-06-20 35 views
5

alanındaki alanın maksimum değeri alma Sorgumun öğenin görüntüleme sayısına göre artırılmasını istiyorum; Bu amaçla view_count/max_view_count gibi bir öğeyi kullanmak istiyorum, böylece öğenin görüntüleme sayısının dizindeki en büyük görüntüleme sayısıyla nasıl ilişkili olduğunu ölçebiliyorum. how to boost the results with a function query'u biliyorum, ancak maksimum görüntüleme sayısını kolayca nasıl alabilirim? Herkes çok yararlı olacaktır örnek ...Solr

cevap

9

sağlayabilir Eğer SQL onlar hakkında düşünce olabilir şekilde solr altında herhangi bir toplama işlevleri yoktur.

  • bir çeşit uygun sorgusu aracılığıyla maksimum değer elde edin
  • max() fonksiyonu

Yani bunu kullanın: Bunu yapmanın en kolay yolu, iki adımlı bir işlemi sahip olmaktır gibi bir şey:

q=*:*&sort=view_count desc&rows=1&fl=view_count 

... bir yerlerde kayıt maksimum VIEW_COUNT, bir öğe almak için, ve sonra

q=whatever&bq=div(view_count, max(the_max_view_count, 1)) 

Bu max() işlevinin, bir maks. Sadece geçtiğiniz maksimum görüntüleme sayısını en fazla 1 veya 1 (sıfıra bölme hatalarından kaçınmak).

Çok boyutlu bir alanınız varsa (bunu yapamayacağınız), aynı zamanda en fazla StatsComponent numaralı telefonu kullanabilirsiniz. Her iki durumda da muhtemelen bunu bir kez yapmak isteyeceksiniz, her sorgu için değil (örneğin, gece yarısı her gece veya veri kümeniz bir kez çöktüğünde).

+0

Cevabınız için teşekkürler ... Ek: Bu konuda herhangi bir iyi dokümantasyonu bulmak oldukça zor, apache'de sadece yukarıdaki bağlantı ve işlevsel sorgular hakkında bir konu var ... Muhtemelen her şeyi tavsiye edebilir misiniz Başka? –

5

ekleyebilir sadece: & istatistikler = true & stats.field = VIEW_COUNT Bunu belirtilen alanda küçük bir istatistik göreceksiniz . Daha fazla belge here

+0

İstatistiklerden aldığımız maksimum ve min değerini, işlev sorgusuna kullanabilir miyiz? – Ankita