public async Task <SolrQueryResults <T> > ExecuteAsync(ISolrQuery q, ISolrQueryBody body, QueryOptions options, CancellationToken cancellationToken = default(CancellationToken)) { var handler = options?.RequestHandler?.HandlerUrl ?? DefaultHandler; var param = GetAllParameters(q, options); var results = new SolrQueryResults <T>(); var serializedBody = body?.Serialize() ?? String.Empty; XDocument xml; if (connection is IStreamSolrConnection cc) { using (var r = await cc.PostStreamAsStreamAsync(handler, body?.MimeType ?? SimpleJsonQueryBody.ApplicationJson, new MemoryStream(Encoding.UTF8.GetBytes(serializedBody)), param, cancellationToken)) { xml = XDocument.Load(r); } } else { var r = await connection.PostStreamAsync(handler, body?.MimeType ?? SimpleJsonQueryBody.ApplicationJson, new MemoryStream(Encoding.UTF8.GetBytes(serializedBody)), param); xml = XDocument.Parse(r); } resultParser.Parse(xml, results); return(results); }
public async Task <SolrMoreLikeThisHandlerResults <T> > ExecuteAsync(SolrMLTQuery query, ISolrQueryBody body, MoreLikeThisHandlerQueryOptions options, CancellationToken cancellationToken = default(CancellationToken)) { var param = GetAllMoreLikeThisHandlerParameters(query, options).ToList(); var serializedBody = body?.Serialize() ?? String.Empty; var r = await connection.PostStreamAsync(MoreLikeThisHandler, body?.MimeType ?? MediaTypeNames.Text.Plain, new MemoryStream(Encoding.UTF8.GetBytes(serializedBody)), param); var qr = mlthResultParser.Parse(r); return(qr); }