Solritas: Das verborgene Juwel von Solr 1.4

Solr 1.4 enthält eine wenig beworbene Funktion, von der ich denke, dass die Leute sie kennen sollten, Solritas. Was für ein alberner Name, sagen Sie! Ja, okay, nennen Sie es den langweiligen alten VelocityResponseWriter, wenn Sie wollen. Abgesehen von der verständlichen Aussprache lässt Solritas die Solr-Antworten wie eine echte Benutzeroberfläche aussehen. Nahe genug für die Arbeit in der Regierung, wie man sagt. Wir haben Solritas bei einer Reihe unserer jüngsten Aufträge effektiv eingesetzt. Nachdem wir die Daten unserer Kunden zum ersten Mal in Solr eingebracht haben, haben sie ein Suchfeld, Facetten und sogar umschaltbare Inline-Erklärungen zur Trefferquote und Anfrage/Antwort-Dumps (bei Verwendung von &debugQuery=true). Und wir fügen gerne das Logo des Kunden oben links ein, weil wir es können und weil es einfach ist.

Folgen Sie ein paar einfachen Schritten, um Solritas in der Beispielanwendung zu aktivieren, die mit Solr 1.4 ausgeliefert wird:

  1. Fügen Sie das Verzeichnis der VelocityResponseWriter-Bibliotheken zur Beispielsolrconfig.xml hinzu
  2. Registrieren Sie es als ein Antwortschreiber-Plugin mit dem Namen „velocity“.
  3. Kopieren Sie ein Vorlagenverzeichnis –
    cp -R contrib/velocity/src/main/solr/conf/velocity example/solr/conf/velocity
  4. Und wenn wir schon dabei sind, erstellen wir eine schön benannte (URLs sind auch wichtig) Zuordnung für den Request Handler, der standardmäßig den Velocity Writer-Typ verwendet, sowie ein paar andere Grundeinstellungen, die für die Beispieldaten sinnvoll sind.

Ein Diff der einzigen hier berührten Konfigurationsdatei, solrconfig.xml, wird am Ende bereitgestellt, um Ihnen die Einzelheiten der oben genannten Schritte zu erläutern.

Starten Sie nun Solr

cd example
java -jar start.jar

Indizieren Sie die Beispieldaten (aus einer anderen Shell)

cd example/exampledocs
java -jar post.jar *.xml

und besuchen Sie http://localhost:8983/solr/itas. Es sollte in etwa wie dieser Screenshot aussehen:

solritas-initial1-150x150

Hey, ich will mein XML zurück! Ok, fügen Sie &wt=xml an die URL an. Das Ergebnis ist dasselbe, es wird nur anders dargestellt.

Wenn Sie debugQuery=true zu einer Anfrage hinzufügen, erhalten Sie eine angenehme Inline-Ansicht der Lucene-Erklärung für die Berechnung der Punktzahl jedes Ergebnisses. Sehen Sie selbst unter http://localhost:8983/solr/itas?q=ipod&debugQuery=true nach, wobei die Erklärungen zunächst ausgeblendet sind und durch Klicken auf den Link „toggle explain“ (Erklären einschalten) individuell sichtbar gemacht werden können:

solritas-debug-150x150

In Solritas schlummern eine Menge interessanter Möglichkeiten und Potenziale. Hier sind ein paar bemerkenswerte bestehende Möglichkeiten:

  • Vorlagen werden in den Anfrageparametern, einem Dateisystem-Basisverzeichnis und dem Klassenpfad gesucht – in dieser Reihenfolge. Auf diese Weise kann der anfragende Client eine Untervorlage, wie z.B. den Header, für jede Anfrage überschreiben. In JAR-Dateien gebündelte Plugins können ihre eigenen Vorlagen enthalten und das Dateisystem kann eingebettete Vorlagen überschreiben.
  • Es stehen mehrere nützliche „Tools“ (wie Velocity sie nennt) zur Verfügung, um Zahlen und Daten zu formatieren, URL-Strings zu kodieren und andere praktisch notwendige Hilfsprogramme, um Daten für Menschen und Hyperlinks darstellbar zu machen.
  • Einfacher Zugriff auf die gesamten Solr-Anfrage- und Antwortobjekte innerhalb einer Vorlage

Die folgenden Diffs sind die einzigen Änderungen, die erforderlich sind, um Solritas in der Beispielanwendung von Solr 1.4 zum Laufen zu bringen –

48a49,51
>   <!-- Added path to VelocityResponseWriter library and dependencies -->
>   <lib dir="../../contrib/velocity/src/main/solr/lib"/>
>
501a505,525
>   <!-- /itas mapping for Solritas view with some basic good defaults: like dismax, facet on cat -->
>   <requestHandler name="/itas">
>      <lst name="defaults">
>        <str name="v.template">browse</str>
>        <str name="title">Solritas Demonstration</str>
>
>        <str name="wt">velocity</str>
>        <str name="defType">dismax</str>
>        <str name="q.alt">*:*</str>
>        <str name="rows">10</str>
>        <str name="fl">*,score</str>
>        <str name="facet">on</str>
>        <str name="facet.field">cat</str>
>        <str name="facet.mincount">1</str>
>        <str name="qf">
>           text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
>        </str>
>      </lst>
>   </requestHandler>
>
>
1006a1031,1033
>   <!-- Light up VelocityResponseWriter -->
>   <queryResponseWriter name="velocity" class="org.apache.solr.request.VelocityResponseWriter"/>
>

You Might Also Like

KI-Agenten dominieren den Einkauf. Ist Ihre Website auf die KI-gestützte Suche vorbereitet?

Generative KI-Agenten wie ChatGPT definieren die Produktsuche neu. Erfahren Sie, wie Sie...

Read More

Vom Suchunternehmen zum praktischen KI-Pionier: Unsere Vision für 2025 und darüber hinaus

CEO Mike Sinoway gibt Einblicke in die Zukunft der KI und stellt...

Read More

Wenn KI schief geht: Fehlschläge in der realen Welt und wie man sie vermeidet

Lassen Sie nicht zu, dass Ihr KI-Chatbot einen 50.000 Dollar teuren Tahoe...

Read More

Quick Links