Apache Solr

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Apache Solr ist ein auf der Lucene Java-Suchbibliothek aufbauende Suchsoftware mit Programmierschnittstellen für JSON, XML, PHP, Python und Ruby, gefilterte (faceted) Suche, Replikation sowie einer webbrowserbasierten Administrationsoberfläche.

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

Konfiguration

Datei "solr.xml"

Masterdatei für mehrere Cores. Ein Index wird oft als "Solr core" bezeichnet", standardmässig wird nur ein Core verwendet (sodass die Datei "solr.xml" in diesem Fall nicht benutzt wird).

Datei "solrconfig.xml"

Enthält:

  • die Indexierungsparameter von Lucene
  • die Cache-Einstellungen
  • die Konfiguration der Request Handler
  • die von den Request Handlern verwendeten Suchkomponenten
  • Response Writer
  • Replikationseinstellungen
  • weitere Funktionalitäten

Beispiel: Konfiguration des Request Handlers "dismax".

<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

Datei "schema.xml"

Besondere Dateien

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

Anlegen eines Index mit den Inhalten des Verzeichnisses "content/isolatinexample".

$ ant index-directory -Ddir=content/isolatinexample
Buildfile: build.xml
compile:
jar:
index-directory:
     [java] Starting index() method. Start dir: /home/mik/tmp/LUCID/lucidlabs/content/isolatinexample
     [java]    example1.pdf
     [java] TOTAL COUNT OF DOCUMENTS INDEXED: 1
     [java] INDEXING COMPLETE IN 1 seconds
BUILD SUCCESSFUL
Total time: 2 seconds

Ein vorhandener Index kann über die Statistikseite http://localhost:8080/solr/admin/stats.jsp genauer untersucht werden.

Löschen aller Inhalte des Index.

$ ant index-init
Buildfile: build.xml
compile:
jar:
index-init:
     [java] Initializing Solr index at:http://localhost:8080/solr ... 
     [java] Index document count is now: 0
     [java] 
BUILD SUCCESSFUL
Total time: 5 seconds

Eine Analyse von Suchabfragen ist über den URL http://localhost:8080/solr/admin/analysis.jsp?highlight=on möglich.

Weblinks

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
eng Moving from FAST to Solr reviewwbm