diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs index 62f3537..e659f3e 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs @@ -231,18 +231,22 @@ private static IEnumerable, QueryCont .Value(parameters.AuthorOrcId))); } - if (parameters.TypeCode is not null) + // Searching with type code requires exact match. + if (!string.IsNullOrWhiteSpace(parameters.TypeCode)) { - filters.Add(t => - t.Term(s => s.Field(f => f.Type) - .Value(parameters.TypeCode))); + filters.Add(t => t.Term(term => term + .Field(f => f.Type!.Code) + .Value(parameters.TypeCode) + )); } - - if (parameters.PublisherOpenAccess is not null) + + // Searching with publisher open access code requires exact match. + if (!string.IsNullOrWhiteSpace(parameters.PublisherOpenAccess)) { - filters.Add(t => - t.Term(s => s.Field(f => f.PublisherOpenAccess) - .Value(parameters.PublisherOpenAccess))); + filters.Add(t => t.Term(term => term + .Field(f => f.PublisherOpenAccess!.Code) + .Value(parameters.PublisherOpenAccess) + )); } if (parameters.Issn is not null) @@ -274,11 +278,13 @@ private static IEnumerable, QueryCont .Value(parameters.Doi))); } - if (parameters.Status is not null) + // Searching with status requires exact match. + if (!string.IsNullOrWhiteSpace(parameters.Status)) { - filters.Add(t => - t.Term(s => s.Field(f => f.Status) - .Value(parameters.Status))); + filters.Add(t => t.Term(term => term + .Field(f => f.Status!.Code) + .Value(parameters.Status) + )); } return filters; diff --git a/aspnetcore/src/Interface/Maps/PublicationProfile.cs b/aspnetcore/src/Interface/Maps/PublicationProfile.cs index 1094cb0..812760f 100644 --- a/aspnetcore/src/Interface/Maps/PublicationProfile.cs +++ b/aspnetcore/src/Interface/Maps/PublicationProfile.cs @@ -17,7 +17,7 @@ public PublicationProfile() AllowNullDestinationValues = true; CreateMap() - .ForMember(dst => dst.TypeCode, opt => opt.MapFrom(src => src.Type!.ToLower())); + .ForMember(dst => dst.TypeCode, opt => opt.MapFrom(src => src.Type!)); CreateMap() .ForMember(dst => dst.PublicationYear, opt => opt.MapFrom(src => src.PublicationYear.HasValue ? src.PublicationYear.Value.ToString(DateTimeYearFormat) : null)) diff --git a/aspnetcore/src/Service.Models/ReferenceData.cs b/aspnetcore/src/Service.Models/ReferenceData.cs index 5f6f23c..85207b6 100644 --- a/aspnetcore/src/Service.Models/ReferenceData.cs +++ b/aspnetcore/src/Service.Models/ReferenceData.cs @@ -6,7 +6,6 @@ public class ReferenceData { [Keyword] public string? Code { get; set; } - public string? NameFi { get; set; } public string? NameSv { get; set; } public string? NameEn { get; set; }