2016-06-22 8 views
0

Seit heute spiele ich mit Abfragegruppen für einen kleinen Test, den ich betreibe.Abfrage Gruppenergebnisse nicht alle Ergebnisse?

Ich habe 2 Gruppen in meiner Abfrage definiert, 1 Filter vor einer bestimmten Datetime, die andere nach der Datetime. Das folgende ist ein sehr vereinfachtes Beispiel meiner Gruppeneinrichtung.

group do 
    query "before" do 
    with(:planned).less_than mydate 
    end 
    query "after" do 
    with(:planned).greater_than mydate 
    end 
end 

Nach der Abfrage durchgeführt wurde, ich Schleife durch meine Gruppen, und ich sehe die folgenden Ergebnisse:

results.group(:queries).groups.each do |g| 
    group_total = g.total 
    group_results_count = g.results.count 
end 

Abfrage before:
group_total = 2
group_results_count = 1

Abfrage after:
group_total = 3 group_results_count =

Das Ergebnis Zahl für meine Fraktion ist immer 1. Der Gesamt Wert tatsächlich richtig ist, ich habe doppelt so durch den Solr Administrations-Bereich überprüft.

Missverstehe ich hier etwas, oder funktionieren Gruppen anders als erwartet?

ich auf Solr leite 5.3.1

Antwort

0

standardmäßig Solr returns one result for each group - siehe group.limit Parameter.

According to the source, verwendet das Gruppierungsmodul in sunspot die Grenze Argument:

def to_params 
    params = { 
     :group   => "true", 
     :"group.ngroups" => "true", 
    } 

    params.merge!(@sort.to_params("group.")) 
    params[:"group.field"] = @fields.map(&:indexed_name) if @fields.any? 
    params[:"group.query"] = @queries.map(&:to_boolean_phrase) if @queries.any? 
    params[:"group.limit"] = @limit if @limit 
    params[:"group.truncate"] = @truncate if @truncate 

    params 
    end 
Verwandte Themen