2017-11-17 141 views
5

göre sonuçlar almak?Solr endeksli alanlarından birine bazı dağılımına göre sonuçlar almak için <code>solr</code> bir yolu var mı dağılımı

Örneğin, alanlar "sinopsis" "PUBLICATION_YEAR" ve "tarz" ile kitapların bir katalog düşünün. En son yayınlanan kitapları destekleyen "sinopsis" e göre en alakalı sonuçları veren bir sorgu oluşturmak istiyorum. Bununla birlikte, nihai sonuçlarda (1000 diyelim) türün belirli bir dağıtıma göre olabildiğince yakın bir şekilde dağıtılmasını istiyorum, örneğin:% 50 Bilim Kurgu,% 25 Non-Fiction,% 10 Politika vb. .

ben set büyük bir sonuç almak ve solr dışında son 1000 kitap almak için ağırlıklı rezervuar örnekleme çeşit yapabileceğini biliyorum ama sadece solr olacağını bir çözüm arıyorum.

Bu mümkün mü? Eğer sorunu çözmek için herhangi bir tavsiyeniz yoksa?

cevap

0

Dağıtımınızı taklit edemezsiniz, ancak her tür için n sayıda sonuç almak için Collapse and Expand veya Result Grouping'u kullanabilirsiniz. Daha sonra o grup için eşiğinizin üzerinde geri dönen herhangi bir sonucu yok sayın.

Sen yukarıdaki örnekte hit sayısı, yani 500 sizin dağılımında maksimum kova boyutuna her grup için belgelerin sayısını ayarlamak gerekir. Bu size çalışmak için çok büyük bir belge kümesi verebilir, böylece toplam sayıyı pr elde etmeye çalışacağım. en azından başlangıçta oldukça küçüktür.

grup yukarıdaki iki özelliklerden birini uzanan ve türe başına toplanan belgelerin sayısının sınırlandırılması için kendi kod ekleyerek daha dinamik boyutları yapmak için bir yol olabilir. cevabınızı @matslindh için

+0

teşekkürler! Her tür için en iyi N sonuçlarını almak ve daha sonra solr dışındaki gerekli sayılara göre filtrelemek için "Sonuç Grubu" özelliğini kullanmayı düşünmüştüm. Bahsettiğiniz gibi, sonuçların sayısı potansiyel olarak yüksek ve bu yaklaşımın performansları konusunda biraz endişeliyim. Önerdiğiniz çözümde "Daralt ve Genişlet" özelliği nasıl girer? – lucacerone