Suchabfragen / Suchtypen

Lucene kennt

  • Term- und Phrasensuche (‚wort‘ ‚das ist eine Phrase‘)
  • Boolesche Operatoren (AND, OR)
  • Wildcard-Suche
  • Range-Queries (Bereichsanfragen)
  • Fuzzy- und Proximity-Suche

Diese Übermittlung der Suchbegriffe lässt sich am einfachsten mit einer Such API lösen.Apache Solr bietet eine solche Schnittstelle an.

Dabei werden nicht nur die Suchbegriffe, sondern auch noch eine Vielzahl zusätzlicher Parameter übergeben, z.B. ob die Ausgabe ein Highlighting des Suchbegriffs beinhalten soll oder ob ein Spellchecker Vorschläge liefern soll. Die Suchparameter werden als GET Parameter an den Solr Webdienst übermittelt.

Der Query Parser von Solr bzw. von Lucene lehnt sich mit seiner Syntax stark an Googles Anfragesprache an. Aus dem Query wird ein Anfrageobjekt erzeugt, das anschliessend an einen Index-Searcher übergeben. Dieser führt die Suche durch und liefert die Ergebnisse. Aus Performance-Gründen liefert Solr nicht alle Treffer aus dem Index, sondern nur eine begrenzte Anzahl der besten Ergebnisse.