2016-06-24 13 views
0

Ich frage mich, ob es möglich ist, die Ergebnisse einer SearchResponse mit einer eigenen Methode aus meinem C# -Code zu filtern. Damit ich eine Action einfügen kann, die das Resultset filtert?Elasticsearch - NEST - Elasticsearch.NET - Filterung nach der Suche

var desc = new SearchDescriptor<T>(); 
desc.Query(q => SomeSearch); 
var searchResponse = Client.Search<T>(desc); 
var filteredData = searchResponse.Documents.Any() ? Filter(searchResponse.Documents, options.SenderXid) : searchResponse.Documents; 
+0

die Ergebnisse auf Elasticsearch filtern oder in der Anwendung auf die Antwort filtern, die von Elasticsearch zurückgegeben wird? –

+0

@RussCam Wenn möglich, möchte ich die 'SearchResponse' filtern, so dass ich ein' SearchResponse'-Objekt mit gefilterten Werten habe. Derzeit im Filtern der Objektliste, die in der Antwort zurückgegeben wird. Also kann ich nur die Liste der Objekte zurückgeben, aber nicht die gesamte 'SearchResponse'. Ich möchte Elasticsearch eine Methode geben, die die 'SearchResponse' nach dem Suchen filtert. – Marius

+1

Sie möchten also, dass die Filterung auf der Elasticsearch-Seite erfolgt? Können Sie ein Beispiel dafür geben, was Sie gerade tun? –

Antwort

0

Ich denke, Sie dies tun könnte:

var searchResponse = Client.Search<T>(desc); 
var postFilteredData = searchResponse.Hits.Where(x=>x.Date > something); 

Ist das, was Sie zu tun suchen?

+0

Hallo, danke für deine Antwort. Aber das ist nicht das, wonach ich suche. Dies würde mir nur eine gefilterte Liste geben, so wie ich es irgendwie mache. Ich möchte eine gefilterte SearchResponse-Klasse zurückgeben. – Marius

Verwandte Themen