[Kobv-opus-tester] Auswahl von CompletedYear statt PublishedYear für Year
Baade-Kelishani, Annegret
baade at fh-aachen.de
Mi Mai 22 19:50:17 CEST 2024
Lieber Herr Schwidder,
nochmals ganz herzlichen Dank! Tatsächlich hatte ich nach der letzten
Änderung keine Neuindexierung mehr gemacht (ich bin immer ein bisschen
unsicher, nach welchen Änderungen das nötig ist). Das habe ich jetzt
nachgeholt und nun sieht es gut aus. In der Datei solr.xslt habe ich die
Reihenfolge von CompletedDate und CompletedYear getauscht.
Nochmals einen schönen Abend in die Runde
Annegret Baade-Kelishani
Am 22.05.2024 um 19:10 schrieb Jens Schwidder:
> Liebe Frau Baade-Kelishani,
>
> ich sehe nichts im Code, das mir Ihrer Konfiguration (unten) zulassen
> würde, dass CompletedDate anstelle von CompletedYear verwendet wird.
>
> Ich gehe davon aus, dass sie eine komplette Neu-Indexierung nach den
> Änderungen in der Konfiguration gemacht haben und das keine doppelten
> Konfigurationseinträge in der Datei config.ini vorhanden sind.
>
>
> Wenn in "...year.order" nur ein Feld angegeben wird, dann ist der Wert
> von Year leer, wenn das Feld nicht gesetzt ist. Die Konfiguration wird
> in folgender Funktion ausgelesen:
>
> Opus\Search\Solr\Document\Xslt::getYearOrder
>
> Die Klasse ist in folgender Datei definiert.
>
> vendor/opus4-repo/search/src/Solr/Document/Xslt.php
>
> Sie könnten sich dort die aktive Konfiguration ins Log
> (workspace/log/index.log) ausgeben lassen.
>
> Log::get()->err(implode(',', self::$yearOrder));
>
> Mit dem Log-Level "->err" sollte, die Ausgabe im Log landen.
>
> Wenn ich irgendwann mal Zeit habe, werde ich ein Tool hinzufügen, um
> die effektive Konfiguration auszugeben ohne solche Zeilen hinzufügen
> zu müssen.
>
>
> Wenn dort "CompletedYear" ausgeben wird und der Index aktuell ist,
> dann könnte es noch Probleme mit dem XSLT geben.
>
> In der Datei XSLT-Datei
>
> Solr/Document/solr.xslt
>
> werden die möglichen Werte an die Funktion übergeben, die bestimmt
> welcher Wert für die Indexierung verwendet wird.
>
> <xsl:variable name="year">
> <xsl:value-of
> select="php:functionString('Opus\Search\Solr\Document\Xslt::indexYear',
> /Opus/Opus_Document/PublishedDate/@Year,
> /Opus/Opus_Document/@PublishedYear,
> /Opus/Opus_Document/CompletedDate/@Year,
> /Opus/Opus_Document/@CompletedYear)" />
> </xsl:variable>
>
> Es kann lokal auch ein eigenes Solr XSLT verwendet werden.
>
> Wenn das XSLT auch dem Standard entspricht, habe ich im Augenblick
> keine weiteren Ideen.
>
>
> Viele Grüße
>
> Jens
>
>
> On 22.05.24 18:15, Baade-Kelishani, Annegret wrote:
>> Lieber Herr Schwidder,
>>
>> ganz herzlichen Dank, das hat mich schon mal weitergebracht. Das
>> Problem mit dem inverted hat sich erledigt, das funktioniert durch
>> Ihre Beschreibung jetzt wie gewünscht.
>>
>> Meine Einstellungen sehen jetzt so aus:
>>
>> searchengine.solr.facets =
>> author_facet,institute,has_fulltext,language,doctype,subject,enrichment_zugriffsart,belongs_to_bibliography,year
>> search.facet.year.indexField = 'year_inverted'
>> search.index.field.year.order = 'CompletedYear'
>> search.facet.year.type = 'Year'
>> search.facet.year.sort = lexi
>>
>> Durch weitere Tests habe ich herausgefunden, dass tatsächlich bei uns
>> nicht das PublishedYear anstelle des CompletedYear belegt wird, wie
>> ich zuerst dachte, sondern das Jahr von CompletedDate. Dabei habe ich
>> doch eingestellt, dass CompletedYear verwendet werden soll? Haben Sie
>> da vielleicht noch eine Idee?
>>
>> Nochmals vielen Dank für Ihre Mühe und einen schönen Abend
>>
>> Annegret Baade-Kelishani
>>
>>
>> Am 22.05.2024 um 08:24 schrieb Jens Schwidder:
>>> Liebe Frau Baade-Kelishani,
>>>
>>> ich habe mal versucht das bei mir nachzuvollziehen und sehe folgende
>>> Probleme.
>>>
>>> Die folgende Option sollte den Feldnamen verwenden, also so aussehen:
>>>
>>> search.index.field.year.order = 'CompletedYear'
>>>
>>> Bei der Indexierung muss angegeben werden, welches Feld verwendet
>>> werden soll. Bei der Anzeige der Facette ist der Name des
>>> Index-Feldes im Solr-Schema notwendig.
>>>
>>> Bei den Inverted-Index-Feldern, wird ein Trick verwendet, um die
>>> umgekehrte Reihenfolge zu erzeugen. Dafür ist der Prefix da, der bei
>>> Ihnen mit angezeigt wird. Folgende Option sorgt dafür, dass die Facette
>>> als "Year" behandelt und bei der Anzeige gegebenenfalls der Prefix
>>> gefiltert wird.
>>>
>>> search.facet.year.type = 'Year'
>>>
>>> Diese Option sollte nie geändert werden. Wenn ich diese Option bei
>>> mir entferne, sieht die Anzeige wie bei Ihnen aus.
>>>
>>> Generell ist die Empfehlung die Datei "application.ini" (Defaults)
>>> nie zu verändern, sondern die notwendige lokale Konfiguration in die
>>> Datei "config.ini" zu schreiben.
>>>
>>> Natürlich kann und wird OPUS 4 lokal auf die vielfältigste Art und
>>> Weise angepasst, auch im Code, aber je mehr es vermieden werden
>>> kann, desto besser. Dafür haben wir über die Jahre immer mehr
>>> Aspekte konfigurierbar gemacht. Die Datei "application.ini" wird
>>> sich in zukünftigen Versionen ändern und wird in Teile zerlegt werden.
>>>
>>> Ich hoffe das hilft ihnen weiter.
>>>
>>> Viele Grüße
>>>
>>> Jens Schwidder
>>>
>>>
>>> On 21.05.24 19:30, Baade-Kelishani, Annegret wrote:
>>>> Lieber Herr Schwidder,
>>>>
>>>> das ist eine tolle Option, aber bei mir funktioniert es leider
>>>> nicht. Ich habe nun in meiner application.ini folgende
>>>> Einstellungen gewählt:
>>>>
>>>> searchengine.solr.facets =
>>>> author_facet,institute,has_fulltext,language,doctype,subject,enrichment_zugriffsart,belongs_to_bibliography,year
>>>>
>>>> search.facet.year.indexField = 'completed_year_inverted'
>>>> search.index.field.year.order = 'completed_year'
>>>> search.facet.year.sort = lexi
>>>>
>>>> Das Ergebnis sieht so aus:
>>>>
>>>>
>>>> Jahr der Veröffentlichung in Opus
>>>>
>>>> * 63511:2024
>>>> <http://opustest2.bibliothek.fh-aachen.de/opus4/solrsearch/index/search/searchtype/all/start/0/rows/10/facetNumber_year/all/yearfq/63511%3A2024> (120)
>>>>
>>>> * 63512:2023
>>>> <http://opustest2.bibliothek.fh-aachen.de/opus4/solrsearch/index/search/searchtype/all/start/0/rows/10/facetNumber_year/all/yearfq/63512%3A2023> (498)
>>>>
>>>> * 63513:2022
>>>> <http://opustest2.bibliothek.fh-aachen.de/opus4/solrsearch/index/search/searchtype/all/start/0/rows/10/facetNumber_year/all/yearfq/63513%3A2022> (457)
>>>>
>>>> * 63514:2021
>>>> <http://opustest2.bibliothek.fh-aachen.de/opus4/solrsearch/index/search/searchtype/all/start/0/rows/10/facetNumber_year/all/yearfq/63514%3A2021> (284)
>>>>
>>>> * ...
>>>>
>>>> Wobei die Jahre sich weiterhin auf das Published_Year und nicht auf
>>>> das Completed_Year beziehen. Gibt es jemanden, bei dem die
>>>> Einstellung mit dem Completed_Year funktioniert?
>>>>
>>>> Herzlichen Dank und viele Grüße in die Runde
>>>>
>>>> Annegret Baade-Kelishani
>>>>
>>>>
>>>> Am 23.04.2024 um 18:00 schrieb Jens Schwidder:
>>>>> Liebe Frau Baade-Kelishani,
>>>>>
>>>>> die Indexierung für die Jahresfacette lässt sich mittlerweile
>>>>> konfigurieren.
>>>>>
>>>>> https://www.opus-repository.org/userdoc/search/yearfacet.html
>>>>>
>>>>> Ich hoffe das hilft Ihnen weiter.
>>>>>
>>>>> Viele Grüße
>>>>>
>>>>> Jens Schwidder
>>>>>
>>>>>
>>>>> On 4/23/24 17:43, Baade-Kelishani, Annegret wrote:
>>>>>> Liebe Kolleginnen und Kollegen,
>>>>>>
>>>>>> ich beziehe mich auf eine Mail aus dem Archiv aus dem November
>>>>>> 2011. Es ging um die Frage, welche Datumsangabe aus OPUS für die
>>>>>> Sortierreihenfolge und für die Anzeige des Jahres in Klammern in
>>>>>> den Trefferlisten verwendet wird:
>>>>>>
>>>>>>> die Anzeige der Jahre in der Facette "Erscheinungsjahr" ist
>>>>>>> abhängig davon, welches Jahr im
>>>>>>> Solr-Index indexiert wurde.
>>>>>>> Nach diesem indexierten Jahr erfolgt dann ebenfalls die
>>>>>>> Sortierung in den Suchergebnissen und die
>>>>>>> Anzeige der "Jahre in Klammern".
>>>>>> In der Mail wurde beschrieben, dass man durch die Anpassung der
>>>>>> Datei solr.xslt erreichen kann, dass nicht das Datum der
>>>>>> Erstpublikation, sondern das Erscheinungsjahr als relevantes Feld
>>>>>> "year" verwendet werden kann:
>>>>>>
>>>>>>> Wir benutzen bei den migrierten OPUS3-Instanzen für die
>>>>>>> Indexierung des Jahres, das Feld
>>>>>>> "CompletedYear".
>>>>>>>
>>>>>>> Im Script für die Migration von OPUS3 nach OPUS4 wird das Feld
>>>>>>> "Erstellungsjahr" aus OPUS3
>>>>>>> nach "Jahr der Fertigstellung"="CompletedYear" in OPUS4 gemappt.
>>>>>>>
>>>>>>> Für die Änderung der Indexierung des Jahres müssen Sie wie folgt
>>>>>>> vorgehen:
>>>>>>>
>>>>>>>
>>>>>>> 1. Die Standardeinstellung für das Jahr in der Datei solr.xslt
>>>>>>> auskommentieren und die Zeile mit
>>>>>>> CompletedYear ersetzen
>>>>>>>
>>>>>>> vi
>>>>>>> /home/opus/opus4-<instanz>/opus4/library/Opus/SolrSearch/Index/solr.xslt
>>>>>>>
>>>>>>> alt: <!-- year (Standardeinstellung für Jahr)
>>>>>>> <xsl:element name="field">
>>>>>>> <xsl:attribute
>>>>>>> name="name">year</xsl:attribute>
>>>>>>> <xsl:choose>
>>>>>>> <xsl:when
>>>>>>> test="/Opus/Opus_Document/PublishedDate/@Year != ''">
>>>>>>> <xsl:value-of
>>>>>>> select="/Opus/Opus_Document/PublishedDate/@Year" />
>>>>>>> </xsl:when>
>>>>>>> <xsl:otherwise>
>>>>>>> <xsl:value-of
>>>>>>> select="/Opus/Opus_Document/@PublishedYear" />
>>>>>>> </xsl:otherwise>
>>>>>>> </xsl:choose>
>>>>>>> </xsl:element>
>>>>>>> -->
>>>>>>>
>>>>>>>
>>>>>>> neu: <xsl:element name="field">
>>>>>>> <xsl:attribute
>>>>>>> name="name">year</xsl:attribute>
>>>>>>> <xsl:value-of
>>>>>>> select="/Opus/Opus_Document/@CompletedYear" />
>>>>>>> </xsl:element>
>>>>>>>
>>>>>> Das habe ich damals für unsere Installation genauso nachgebaut,
>>>>>> und es ist nun seit Jahren so gelaufen. Nun probieren wir gerade,
>>>>>> unsere Installation mit der Version 4.6.3 auf die 4.8 zu
>>>>>> migrieren. Eine direkte Migration scheint nicht möglich zu sein,
>>>>>> dazu gab es hier schon entsprechende Mails, daher gehen wir über
>>>>>> den Zwischenschritt 4.7.1. In unserer Testinstanz ist die Datei
>>>>>> solr.xslt unverändert, das heißt, meine Änderung bezüglich "year"
>>>>>> ist erhalten geblieben, aber
>>>>>>
>>>>>> - die Sortierung bezieht sich auf das PublishedYear und nicht auf
>>>>>> das CompletedYear
>>>>>>
>>>>>> - in Klammern wird das PublishedYear angezeigt, wenn das nicht
>>>>>> vorhanden ist (das ist bei der Mehrzahl unserer Dokumente der
>>>>>> Fall), bleibt es ganz frei
>>>>>>
>>>>>> - und am schlimmsten: auch die Facettierung bezieht sich auf das
>>>>>> PublishedYear, wenn das nicht gefüllt ist, wird das Dokument bei
>>>>>> der Jahresfacette nicht berücksichtigt
>>>>>>
>>>>>> Was kann man da machen bzw. wo kann ich das jetzt wieder so
>>>>>> einstellen, dass es für uns richtig funktionieren würde?
>>>>>>
>>>>>> Vielen Dank für Ihre Hilfe und freundliche Grüße aus Aachen
>>>>>>
>>>>>> Annegret Baade-Kelishani
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Kobv-opus-tester mailing list
>>>>>> Kobv-opus-tester at zib.de
>>>>>> https://listserv.zib.de/mailman/listinfo/kobv-opus-tester
>>>>>
>>>>>
>>>>> --
>>>>> Kobv-opus-tester mailing list
>>>>> Kobv-opus-tester at zib.de
>>>>> https://listserv.zib.de/mailman/listinfo/kobv-opus-tester
>>>
>>>
>>> --
>>> Kobv-opus-tester mailing list
>>> Kobv-opus-tester at zib.de
>>> https://listserv.zib.de/mailman/listinfo/kobv-opus-tester
>
--
FH Aachen
Dipl.-Bibl. Annegret Baade-Kelishani
Hochschulbibliothek
FH Aachen
University of Applied Sciences
Eupener Str. 70
52066 Aachen | Germany
T +49 241 6009-52063
https://fhac.de/BIB <https://fhac.de/BIB>
baade at fh-aachen.de <mailto:baade at fh-aachen.de>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://listserv.zib.de/pipermail/kobv-opus-tester/attachments/20240522/3f867d08/attachment.html>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : iR2ZNrvfRWvf5qSA.png
Dateityp : image/png
Dateigröße : 839 bytes
Beschreibung: nicht verfügbar
URL : <http://listserv.zib.de/pipermail/kobv-opus-tester/attachments/20240522/3f867d08/attachment.png>
Mehr Informationen über die Mailingliste Kobv-opus-tester