diff --git a/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts b/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts index 986138493b3..c4251c3597f 100644 --- a/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts +++ b/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts @@ -46,13 +46,22 @@ export class SearchResultListElementComponent, K exten } /** - * Gets all matching metadata string values from hitHighlights or dso metadata, preferring hitHighlights. + * Gets all matching metadata string values from hitHighlights or dso metadata. * * @param {string|string[]} keyOrKeys The metadata key(s) in scope. Wildcards are supported; see [[Metadata]]. * @returns {string[]} the matching string values or an empty array. */ allMetadataValues(keyOrKeys: string | string[]): string[] { - return Metadata.allValues([this.object.hitHighlights, this.dso.metadata], keyOrKeys); + const dsoMetadata: string[] = Metadata.allValues([this.dso.metadata], keyOrKeys); + const highlights: string[] = Metadata.allValues([this.object.hitHighlights], keyOrKeys); + const removedHighlights: string[] = highlights.map(str => str.replace(/<\/?em>/g, '')); + for (let i = 0; i < removedHighlights.length; i++) { + const index = dsoMetadata.indexOf(removedHighlights[i]); + if (index !== -1) { + dsoMetadata[index] = highlights[i]; + } + } + return dsoMetadata; } /**