Apache SolrNieuw
| Versie | 3.x |
| Officiële website | http://lucene.apache.org/solr/ |
| Licentiemodel | Apache License v2 |
| Behoort tot de domeinen | Enterprise Search
|
| Getest in | juli 2010 |
Aanbevelingen
Apache Solr is een zeer degelijke zoekserver met een uitgebreide set aan functionaliteit zoals taalanalyse, facetclassificatie, spellingscontrole en resultaat-highlighting. De server kan als zelfstandige zoekmachine gebruikt worden in alle projecten die nood hebben aan een zoekfunctie. Het platform beschikt over mechanismen om het systeem te schalen tot zeer grote volumes.
Solr is geen plug-and-play oplossing. Het is (nog) niet vergelijkbaar met commerciële zoekoplossingen die bijvoorbeeld out-of-the-box een reeks connectoren bezitten naar heel wat content management systemen. Je dient nog heel wat werk zelf te doen zoals het indexeren van de documenten (die in een correct formaat moeten zijn), keuzes maken voor de tekstanalyse, bouwen van de zoekschermen, …
Het implementeren van een zoekoplossing is een project op zich. Je moet bepalen wat je wenst te doorzoeken uit welke systemen. Daar dienen dan de nodige connectoren voor gebouwd te worden. Bij de definitie van het schema moet rekening gehouden worden met de gewenste zoekfunctionaliteit en de presentatie van de zoekresultaten. Daarna dient de zoekinterface gebouwd te worden voor de presentatie van de zoekresultaten.
Solr biedt aan programmeurs een snelle en degelijke manier om een zoekoplossing in een project te integreren. Gebruikers van Lucene zullen heel wat features van Solr (her)kennen. Solr steunt immers op heel wat bestaande Lucene-functionaliteit. Gezien de sterke overlap tussen Solr en Lucene werken deze nu met een gemeenschappelijke codebasis. Beide projecten zullen echter wel blijven bestaan.
Je kan je de vraag stellen waarom je zou kiezen voor Solr en niet puur voor Lucene. Solr verbergt voor een groot stuk het werk dat elke Lucene-gebruiker moet verwerken in code. Aangezien dit een server is, kan deze onafhankelijk van elk project beheerd worden door een team dat de zoekproblematiek door en door kent. Vaak wordt de zoekfunctie in veel systemen achteraf toegevoegd en op een weinig doordachte manier ingevoerd. Een centrale zoekinfrastructuur kan ervoor zorgen dat de aanpak rond zoekfunctionaliteit meer transversaal gebeurt.
Kortom, Solr is zeker het bekijken waard, maar dient met de nodige voorzichtigheid aangepakt te worden.
Beschrijving
Apache Solr is een zoekplatform dat deel uitmaakt van het Apache Lucene project. Lucene is een bekende softwarebibliotheek met uitgebreide functionaliteit voor de bouw van een eigen zoekmotor. Lucene vervult twee nodige functionaliteiten van een zoekoplossing, namelijk het opbouwen van de index en het ondervragen ervan. Rond deze kernfunctionaliteiten werd een server gebouwd, Solr genaamd, die uitgebreider is qua functionaliteit dan enkel Lucene. Net zoals Lucene is Solr een oplossing gericht op developers.
Solr is Java-gebaseerd en maakt gebruik van een applicatieserver (Tomcat, Jboss, Jetty, WebLogic…). De interface met Solr is echter programmeertaal-agnostisch, namelijk steunend op XML/JSON en HTTP. Dit maakt dat bijvoorbeeld ook PHP-oplossingen zoals Drupal ervan kunnen gebruik maken.
Deze oplossing biedt ondermeer:
- configuratie via XML-bestanden
- flexibel schema met heel wat configuratiemogelijkheden.
- tekstanalyse afhankelijk van gedefinieerde veldtypes
- Java API (SolrJ)
- tools voor de conversie van documenten (MS Office, PDF, OpenOffice, …) naar het Solr-formaat (gebaseerd op Apache Tika)
- Geavanceerde functionaliteit zoals facetten, highlighting, spellingscontrole (“bedoel je <dit woord>?”), gewogen queries, …
- Schaalbare oplossing die gespreid kan worden over meerdere servers
- Administratieinterface met mogelijkheden van debugging
Als serveroplossing biedt Solr het voordeel dat dit de basis kan vormen van een centrale zoekinfrastructuur die door één team kan beheerd worden. Dit in tegenstelling tot Lucene-implementaties die steeds specifiek per project worden gehanteerd.
Een degelijke implementatie van Solr vraagt wat werk aangezien je instaat voor het indexeren van de content (met al zijn complexiteit) en ook de bouw van de zoekinterface.
Het pakket beschikt niet over connectoren naar diverse systemen zoals zijn commerciële tegenhangers. Met Apache ManifoldCF (het vroegere Lucene Connectors Framework) wenst men hieraan te verhelpen, zij het dat project nog in zijn kinderschoenen staat.
Solr heeft een versiesprong gemaakt van versie 1.4.1 naar versie 3.1 om de versienummers synchroon te houden met Lucene.
