[Kobv-opus-tester] zusätzliches Suchfeld

Annegret Baade-Kelishani baade at fh-aachen.de
Fre Sep 28 17:17:48 MEST 2012


Hallo Herr Szott,
zunächst einmal ganz herzlichen  Dank für Ihre Rückmeldungen.
Am 27.09.2012 17:29, schrieb Sascha Szott:
> On 27.09.2012 16:52, Annegret Baade-Kelishani wrote:
>> Ich glaube, Sie meinen die Datei solr.xslt.
> Ja genau, die meine ich.
>
>>> Wenn ich die Email hier eintrage,
>>>    <xsl:for-each select="/Opus/Opus_Document/PersonAuthor">
>>>                      <xsl:element name="field">
>>>                          <xsl:attribute name="name">author</xsl:attribute>
>>>                          <xsl:value-of select="@FirstName" />
>>>                          <xsl:text> </xsl:text>
>>>                          <xsl:value-of select="@LastName" />
>>>                          <xsl:text> </xsl:text>
>>>                          <xsl:value-of select="@Email" />
>>>                          <xsl:if test="position()!=last()">
>>>                          <xsl:text> ; </xsl:text>
>>>                          </xsl:if>
>>>                        </xsl:element>
>>>                  </xsl:for-each>
>> wird sie auch gefunden, das klappt gut. Nachteil ist allerdings, dass
>> sie dann in der Listenanzeige in der Frontdoor auch angezeigt wird
> das liegt daran, dass das Indexfeld 'author' sowohl für die Suche als
> auch die Anzeige verwendet wird. Sie könnten aber folgendes Vorgehen
> wählen: statt die E-Mail-Adresse mit in das XML-Element <field
> name="author"> zu schreiben, erzeugen Sie ein neues XML-Element <field
> name="text">. In dieses Feld (kann auch mehrfach vorkommen) können Sie
> nun alle Inhalte schreiben, die in der einfachen Suche durchsucht werden
> sollen. Die Feldinhalte werden aber an keiner Stelle innerhalb der
> Webapplikation ausgegeben.
>
> Beispiel:
>
> <xsl:for-each select="/Opus/Opus_Document/PersonAuthor">
>     <xsl:element name="field">
>       <xsl:attribute name="name">text</xsl:attribute>
>       <xsl:value-of select="@Email" />
>     </xsl:element>
> </xsl:for-each>
>
> Nach dieser Anpassung *müssen Sie eine Reindexierung durchführen*. Dazu
> rufen Sie im Verzeichnis $BASEDIR/opus4/scripts das PHP-Skript
> SolrIndexBuilder.php auf. Je nach Dokument- und Volltextanzahl kann das
> eine Weile dauern…
>
> Noch die Warnung: Sie müssen in Zukunft bei jedem OPUS4-Update die Datei
> solr.xslt händisch pflegen, da das Updateskript nicht annimmt, dass Sie
> die Datei angepasst haben.
Ich habe das jetzt ausprobiert, es hat gut funktioniert, herzlichen 
Dank. Mit der Tatsache, dass ich die Datei solr.xslt dann nach jedem 
Update anpassen müsste, könnte ich gut leben. Ihr Einwand von heute 
morgen ist allerdings ein Problem, es kommt nämlich tatsächlich vor, 
dass die Email auch zum Beispiel im Volltext auftaucht, so dass die 
Suchergebnisse dann nicht genau stimmen.:-(
>>> Wer ruft denn in ihrem Szenario den
>>> Export auf? Der Client (Browser des Benutzers) per AJAX oder das CMS,
>>> das die Publikationslisten im Hintergrund bereits erzeugt und dann
>>> serverseitig nur noch in die Seite "einhängt"? Im zweiten Fall könnte
>>> man durchaus die Suche nach E-Mail-Adressen als privilegierte Funktion
>>> betrachten, die nur ausgewählte Benutzer durchführen dürfen. Dann würde
>>> man dem CMS-Prozess mit den erforderlichen Rechten für diese Operation
>>> ausstatten.
>> Zur Zeit das CMS. Von daher wäre es für mich natürlich auf jeden Fall
>> schon mal ein Fortschritt, wenn ich wüsste, wie man solch eine
>> privilegierte Funktion einrichten würde. Flexibler wäre man aber, wenn
>> auch der Weg über AJAX möglich wäre, man weiß ja nie, welche Anforderung
>> als nächstes kommt ...
> Sie legen eine neue User-Rolle, z.B. cms, an und geben dieser das Recht
> das Modul 'export' aufrufen zu können. Anschließend weisen Sie der Rolle
> eine IP-Adresse (des Rechners, auf dem das CMS läuft bzw. der Job, der
> die Ausgabe für das CMS generiert) zu. Der Rolle guest entziehen sie nun
> den Zugriff auf das Modul. Nun kann der Export nicht mehr von jedem
> beliebigen Benutzer aufgerufen werden.
>
> Dieses Vorgehen verhindert aber nicht, dass jemand über die einfache
> Suche nach einer Mailadresse sucht. Sie können also bislang nicht
> einstellen, dass nur bestimmte User-Rollen auf bestimmte Suchfelder
> zugreifen können.
genau. Diese Vorgehensweise war mir schon bekannt, ich will ja aber 
nicht den Export verhindern, sondern - wenn überhaupt - die Suche.
>
> AJAX ist auch jetzt schon möglich. Die Frage ist nur, wie performant das
> am Ende ist. Die Erzeugung eines XML-Exports kann je nach Größe einige
> Sekunden dauern. In jedem Fall müssten Sie aber bei dieser Variante
> wieder allen den Zugriff auf das Modul 'export' gestatten.
Das würde ich nicht als Problem sehen. Ich glaube sowieso nicht, dass 
jemand von alleine auf die Idee kommt, einen Export anzuwerfen, dafür 
ist ja schon einiges an Expertenwissen nötig. Wir würden das ggf. 
entweder skriptgesteuert über das cms laufen lassen (wie schon 
beschrieben) oder evt. auf Zuruf für Sonderfälle (so etwa: "Ich benötige 
dringend eine Liste der Veröffentlichungen meines Fachbereichs, können 
Sie so etwas erstellen?").
>
> Beste Grüße,
> Sascha Szott
>
Viele Grüße und ein schönes Wochenende
Annegret Baade-Kelishani

-- 
Annegret Baade-Kelishani
Hochschulbibliothek der FH Aachen
Eupener Str. 70
52066 Aachen
+49241600952063