2017-04-20 2 views
0

Sagen wir, ich habe folgendes Schema in Azure Search Collection mit 100s von Datensätzen.Azure Suche. So erhalten Sie Ergebniszählungen bei Paginierung

{ 
"id": '1', 
"Status" : "Available", 
"name" : "demo 1" 
}, 
{ 
"id": '2', 
"Status" : "Available", 
"name" : "demo 1" 
}, 
{ 
"id": '3', 
"Status" : "Removed", 
"name" : "demo 1" 
}, 
{ 
"id": '4', 
"Status" : "Booked", 
"name" : "demo 4" 
} 

In My Statusfeld kann ich drei verschiedene Werte haben, "ausgebucht", "Verfügbar", "entfernt".

Jetzt bekomme ich die Daten durch Paginierung mit Skip und Top aus der Azure Search. Wie in der ElasticSearch-Aggregationsfunktion gibt es eine Möglichkeit in der Azure-Suche, um insgesamt keine der Sites mit Status Gebucht, Verfügbar oder nicht entfernt usw. zu erhalten. Weil ich eine Zählung in der Client-Seite nicht durchführen kann, weil ich sie haben werde begrenzte Anzahl von Datensätzen, nicht alle Datensätze von Azure Search.

+0

Wenn ich richtig verstehe, möchten Sie Aggregate und Datensätze in einem einzigen Abfrageergebnis sehen. Richtig? Oder würden zwei separate Abfragen (eine für Paginierungsdaten und andere für Aggregate) eine Option? –

Antwort

1

Wenn Sie den Index erstellen, erstellen Sie das status Feld facetable und filterable. Stellen Sie dann eine Facettenabfrage für den Status mit $filter=status ne 'Booked'. Dadurch erhalten Sie unabhängig von der Paginierung die Gesamtanzahl der Dokumente in jeder Statuskategorie außer Gebucht.

+0

Danke, dass ich am Ende Facetable gemacht habe – TBA

Verwandte Themen