Search-Service
Der Searchservice hat solr als Backend:
Für die externe Webseite
http://md.mpiwg-berlin.mpg.de:8983/solr/#/mpiwgSources
Zugriff auf interne Quellen, Videos und ähnliches wird durch das solrconfig.xml verhindert.
Dafür existiert noch kein Cronjob
Cronjobs auf tuxserve03:
- /etc/cron.daily/harvestCollection1Solr
- /etc/cron.daily/harvestSourceSolr
- /etc/cron.daily/harvestToPurl
Für die interne Webseite
über
https://md.mpiwg-berlin.mpg.de/browse/
wird durch
http://md.mpiwg-berlin.mpg.de:8983/solr/#/collection1
betrieben.
Enthält auch den Bibliothekskatalog.
Dafür existiert noch kein Cronjob Benötigt wird auch Cronjob für den Import des Bibliothekskatalogs
Korrespondierend dazu existiert ein drupal-md-solr experimentelles Modul für DRUPAL 7.
Interne Webseite mit Volltexten
Volltext indizes werden über
http://md.mpiwg-berlin.mpg.de:8983/solr/#/fulltexts zur Verfügung gestellt.
Diese werden zur Zeit nicht regelmäßig erneuert, da keine neuen OCR dazukommen.
Eingebaut werden müssen aber noch die XML Texte in die allgemeine Suche.
Experiments
Versuch mit Solr4
Config File (data-config.xml):
<dataConfig> <dataSource type="FileDataSource" encoding="UTF-8" /> <document> <entity name="f" processor="FileListEntityProcessor" excludes="^\..*" baseDir="/Volumes/online_permanent/einstein/annalen" fileName=".*\.meta" recursive="true" rootEntity="false" dataSource="null"> <entity name="page" processor="de.mpiwg.itgroup.solr.transformer.ExtendedXPathEntityProcessor" stream="true" url="${f.fileAbsolutePath}" transformer="RegexTransformer,DateFormatTransformer" xsl="/Users/dwinter/Documents/Projekte/MetaDataManagement/testData/indexMeta_to_field.xsl" useSolrAddSchema="true" > </entity> </entity> </document> </dataConfig>
indexMeta_to_field.xsl konvertiert index.meta files in das doc-format zum Indizieren. Alle Einträge in bib werden dazu in Felder umgewandelt mit dem Prefix "IM_". Ausserdem werden alle Felder noch in ein Feld "all-bib-data" gemappt.
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <add> <doc> <field name="archive-path"><xsl:value-of select="/resource/archive-path"/> </field> <xsl:for-each select="/resource/meta/bib//*"> <field><xsl:attribute name="name">IM_<xsl:value-of select="name()"/> </xsl:attribute><xsl:value-of select="."/></field> <field name="all-bib-data"><xsl:value-of select="."/></field> </xsl:for-each> </doc> </add> </xsl:template> </xsl:stylesheet>
In schema.xml:
<field name="all-bib-data" type="text_general" indexed="true" stored="true" multiValued="true"/> <field name="archive-path" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <dynamicField name="IM_*" type="text_general" indexed="true" stored="true"/> <uniqueKey>archive-path</uniqueKey>
ExtendedXPathEntityProcessor ist eine fehlertolerantere Erweiterung von XPathEntityProcessor.
package de.mpiwg.itgroup.solr.transformer; import java.util.Map; import org.apache.solr.handler.dataimport.XPathEntityProcessor; public class ExtendedXPathEntityProcessor extends XPathEntityProcessor { public Map<String,Object> nextRow(){ Map<String, Object> r; try { r = super.nextRow(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); r = null; } return r; } }