elasticsearch-net icon indicating copy to clipboard operation
elasticsearch-net copied to clipboard

MultiGetRequest does not serialize request parameters for SourceConfigParam properly

Open MartinAprimo opened this issue 7 months ago • 0 comments

Elastic.Clients.Elasticsearch version: 8.14.6

Elasticsearch version: 8.8.2

.NET runtime version: .NET Framework 4.8.9241.0

Operating system version: Win 11

Description of the problem including expected versus actual behavior: When I search using MultiGetRequest, the code the SourceConfigParam is not serialized to the URI properly. The URI for the request that is send to elastic looks like POST: /tenant-1_unittests_uniquekeycacheindex_20240716100527714/_mget?pretty=true&error_trace=true&_source=Elastic.Clients.Elasticsearch.Core.Search.SourceConfigParam&realtime=true&refresh=false Instead of POST: /_mget?pretty=true&error_trace=true&_source=true&realtime=true&refresh=false

Steps to reproduce: Small code samle

MultiGetRequest multiGetRequest = new MultiGetRequest()
{
				Docs = new List<MultiGetOperation>(),
				Source = new SourceConfigParam(Elastic.Clients.Elasticsearch.Fields.FromString("entityId")), 
};

foreach (var add in updates[UniqueKeyAction.Add])
{
				MultiGetOperation getOperation = new MultiGetOperation() { 
					Id = new Id(UniqueKeyHelper.GenerateUniqueKeyEntryId(add)), Index = CacheName };
				multiGetRequest.Docs.Add(getOperation);
}

foreach (var update in updates[UniqueKeyAction.Update])
{
				MultiGetOperation getOperation = new MultiGetOperation() { Id = new Id(UniqueKeyHelper.GenerateUniqueKeyEntryId(update)), Index = CacheName };
				multiGetRequest.Docs.Add(getOperation);
}

multiGetRequest.Realtime = true;
multiGetRequest.Refresh = false;
multiGetRequest.RequestConfiguration = new RequestConfiguration
{
				MaxRetries = 0
};

var multiGetResponse = await Client.MultiGetAsync<ElasticUniqueKeyDto>(multiGetRequest).ConfigureAwait(false);

Expected behavior The URI should (I believe) look like /_mget?pretty=true&error_trace=true&_source=true&realtime=true&refresh=false

Provide ConnectionSettings (if relevant):

Provide DebugInformation (if relevant):

MartinAprimo avatar Jul 16 '24 10:07 MartinAprimo