Introductie SolR

albert's picture

Wat is SolR?

SolR is een zoekmachine gebaseerd op Lucene. Zowel SolR als Lucene zijn Open Source projecten van de Apache Software Foundation.

Lucene is een high-performance search engine library, geschreven in Java en daardoor geschikt voor allerlei toepassingen die full-text search nodig hebben.

SolR is een Webapplicatie die draait in een Webcontainer zoals Tomcat, JBoss of (in ontwikkelomgevingen) Jetty. Solr heeft een webservices-achtige API, waarmee gezocht kan worden in een index die met Lucene is opgebouwd. Solr doet full-text search (lucene) met optimalisatie voor veel web-verkeer en levert mogelijkheden voor faceted search en highlighting. SolR is gebaseerd op open standaarden zoal XML, JSON en HTTP. Solr wordt geconfigureerd met XML, is eenvoudig schaalbaar en is uitbreidbaar door een plugin-architectuur. Naast de zoekfunctionaliteit levert SolR ook een interface voor het indexeren.

SolR indexeert Documents

Net als bij lucene is de basis voor al het zoeken een document. Een document is een verzameling van informatie, opgebouwd uit velden. Velden bezitten eigenschappen. Voorbeelden zijn:

  • indexed. Het veld kan gebruikt worden om op te zoeken.
  • stored. De inhoud van het veld is opgeslagen in SolR en kan in queries opgehaald worden
  • multiValued. Het veld kan meerdere keren voorkomen

Velden kunnen van verschillende types zijn, zoals date, integer, real string etc. De beschrijving van de velden en de manier waarop SolR ermee om moet gaan wordt beschreven in schema.xml

SolR analyseert velden

Zowel bij het invoeren van een document in SolR als bij het opvragen kunnen tekst-velden "geanalyseerd" worden. Een analyzer kan bestaan uit een klasse of een verzameling van een of meer charFilters, een tokenizer en een of meer tokenFilters. Door op de juiste wijze fieldTypes met analyzers te definieren kan zo een zeer flexibel index- en querysysteem gebouwd worden. Voor meer details zie SolR Schema.xml.