From b2caf2a36c9b77e421ceeca257af53ea0ed5ed9f Mon Sep 17 00:00:00 2001 From: Martin Czygan Date: Thu, 7 Nov 2024 10:18:57 +0100 Subject: [PATCH] crossref: #21429 --- formats/crossref/document_test.go | 7 +++++++ formats/finc/solr.go | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/formats/crossref/document_test.go b/formats/crossref/document_test.go index b0d397bc..9d098a18 100644 --- a/formats/crossref/document_test.go +++ b/formats/crossref/document_test.go @@ -35,6 +35,13 @@ func TestDocumentCombinedTitle(t *testing.T) { }, result: "Hello Sub", }, + { + doc: &Document{ + Title: []string{"Deutsche Nationalkataloge – Herausforderungen an das deutsche Bibliothekssystem"}, + Subtitle: []string{"Was aus der Perspektive der Digital Humanities zu tun wäre"}, + }, + result: "Deutsche Nationalkataloge – Herausforderungen an das deutsche Bibliothekssystem : Was aus der Perspektive der Digital Humanities zu tun wäre", + }, } for _, c := range cases { result := c.doc.CombinedTitle() diff --git a/formats/finc/solr.go b/formats/finc/solr.go index fde7e296..8dbc81f8 100644 --- a/formats/finc/solr.go +++ b/formats/finc/solr.go @@ -140,7 +140,11 @@ func (s *Solr5Vufind3) convert(is IntermediateSchema, withFullrecord bool) error } s.SourceID = is.SourceID - s.Subtitle = is.ArticleSubtitle + if len(is.ArticleSubtitle) > 20 && !strings.Contains(s.Title, is.ArticleSubtitle) { + // refs #21429, avoid duplications, e.g. crossref assembles a title + // from both title and subtitle already + s.Subtitle = is.ArticleSubtitle + } s.TitleSort = is.SortableTitle() s.Topics = is.Subjects