Jul 15, 2015
Ziel: vufind 1.X ist mit mehreren Solr-Servern verwendbar
• Solr(fusion) Query: highlight queries, filter queries, query
• Solr Response: highlights, documents, facets • https://github.com/outermedia/solr-fusion/blob/master/src/main/doc/user-
guide.md#supported-solr-features
•
•
•
•
•
•
zu verarbeitende Daten werden in einheitliches internes Format
überführt
• Vorteil: es können einheitliche Regeln geschrieben werden
• Vorteil: eine Regel kann auf alle zu verarbeitenden Daten
angewandt werden
das interne Format ähnelt einem Solr-Dokument: Ein Dokument
besteht aus Feldern
ein Feld besteht aus einem Namen und einer Liste von Werten
•
•
•
•
Eine <om:change> Regel deklariert den Ziel-Feldnamen und Ziel-Wert.
Nur die textuell letzte change-Regel zum gleichen Quell-Feld wird
ausgewertet.
ACHTUNG: Regel-Namen mit "*" werden immer ausgeführt.
• Reihenfolge von <om:change> Regeln ist wichtig
• Mehrfach Transformationsfkt. innerhalb eines <om:change>
anwendbar.
javascript - generisch
beanshell - generisch
regexp - Suchen und Ersetzen
static-table - Konstanten abbilden
static-value - Wert setzen
merge-multi-value - Multi value Field zu Single value
filter-id - Solrfusion-Id zu Solr-Id
field-merger - Felder zusammenfassen
normalizer - Zeichenketten normalisieren
set-doc-count - Facetten Dokument-Anzahl setzen
logs/log4j.log
log4j.rootCategory=TRACE, Default, File
…
log4j.appender.File.Threshold=TRACE
UBL-Vufind 1.X sendet bei einer Suche mit 20 Treffern 42 Solrfusion-
Anfragen!
logs/log4j.log
•
•
•
•
•
•
•
•
•
•
<om:field fusion-name="solr-server">
<om:add>
<om:response target="facet" type="static-value">
<value>UBL4</value>
</om:response>
<om:response target="facet" type="set-doc-count">
<total-found-nr />
</om:response>
</om:add>
<!-- post-processors handle this synthetic field -->
<om:drop><om:query /></om:drop>
</om:field>
<om:field name="s7" fusion-name="text7">
<om:change>
<om:response type="merge-multi-value">
<range>2</range>
<separator>,</separator>
</om:response>
</om:change>
</om:field>
<om:field name="id" fusion-name="id">
<om:change>
<om:query type="filter-id" />
</om:change>
</om:field>
<om:field fusion-name="fulltext">
<om:add>
<om:response type="field-merger">
<separator>;</separator>
<field>content</field>
<field>description</field>
</om:response>
</om:add>
</om:field>
<om:field name="title_sort" fusion-name="title_sort">
<om:change>
<om:response type="normalizer">
<to-lower-case>true</to-lower-case>
<start-chars-to-del>  ."-[(</...>
</om:response>
</om:change>
</om:field>
<om:post-processor>
<om:query type="send-if-fq-eq">
<fusion-name>solr-server</fusion-name>
<fusion-value>UBL</fusion-value>
</om:query>
</om:post-processor>
<om:post-processor>
<om:query type="filter-empty-fq">
<ignore-fusion-name>solr-server</...>
<ignore-fusion-name>authorized_mode</...>
</om:query>
</om:post-processor>
<om:field name="Titel1" fusion-name="title">
<om:add level="inside"><om:query/></om:add>
</om:field>
<om:field name=„not_used" fusion-name=„not_used">
<om:add level="outside">
<om:query type="static-value">
<value>+t11:"text"~2^75</value>
</om:query>
</om:add>
</om:field>
<entry>
<value>eBook</value>
<fusion-value>Electronic Resources</...>
</entry>
<entry>
<value>eJournal</value>
<fusion-value>Electronic Resources</...>
</entry>...
•
•
•
•
•