Apache Solr

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Apache Solr ist ein auf der Lucene Java-Suchbibliothek aufbauender Suchserver mit XML/HTTP- und JSON-Programmierschnittstellen, facetierter Suche, Replikation und einer webbrowserbasierten Administrationsoberfläche.

Der Server läuft in einem Java Servlet-Container (z. B. Apache Tomcat).

Konfiguration

Konfiguration des RequestHandlers "dismax" in der Datei "solrconfig.xml".

<requestHandler name="dismax" class="solr.SearchHandler" >
  <lst name="invariants">
    <str name="fl">id,filename,title,content_type</str>
  </lst>
  <lst name="defaults">
    ...
    <str name="qf">text^0.5 title^5.5 filename^0.1 category^1.5</str>
    <str name="pf">text^0.5 title^2.5 category^1.5</str>
  ...


Der Handler enthält zwei wichtige Abschnitte, "invariants" and "defaults":

  • Ein "default"-Wert wird verwendet, wenn keiner der angegebenen Parameter über die Suchabfrage übergeben wurde. Falls ein Wert über die Suchabfrage übergeben wurde, wird er den "deafult"-Wert überschreiben. Solche Werte werden beispielsweise für die Suchfelder ("qf", query fields) oder für die Phrasenfelder ("pf", phrase fields) verwendet.
  • Ein "invariant"-Wert kann niemals überschrieben werden.

Dank der so verwendeten Standardwerte reicht es, bei einer Suchabfrage den Suchbegriff ("q") sowie den Suchtyp ("qt") anzugeben:

http://localhost:8080/solr/select/?q=cal+ripken&qt=dismax

Verwendung

Indizieren aller Inhalte.

$ cd $SOLR_HOME/lucidlabs
$ ant index-directory
Buildfile: build.xml
compile:
jar:
index-directory:
    [java] Starting index() method. Start dir: /home/mik/tmp/LUCID/lucidlabs/content
    [java]    pelican.html
    [java]    TheGrizzlyBear.pdf
    ...
    [java]    integrating-with-mule-esb-dallas-javamug-april-2009.pdf
    [java] TOTAL COUNT OF DOCUMENTS INDEXED: 361
    [java] INDEXING COMPLETE IN 61 seconds
BUILD SUCCESSFUL
Total time: 1 minute 4 seconds