|
Naam |
Apache Solr |
|---|---|
|
Jaar van oprichting |
2006 |
|
Website |
|
|
Contact |
|
|
Oorsprong |
Verenigde Staten |
|
Grootte organisatie |
10+ committers |
|
Implementatiepartners |
|
|
Positionering |
Defacto standaard Open Source Enterprise Search oplossing |
|
Naam |
Apache Solr |
|---|---|
|
Versie en release |
1.4 |
|
Licentietype |
Open source (Apache 2) |
|
Beschrijving |
Apache Solr is een open source zoekoplossing, gebouwd bovenop Apache Lucene. Het stelt een uitgebreide set van zoekfunctionaliteiten beschikbaar via een REST-achtige webservice. Solr is in staat om kleine, maar ook heel grote documentcollecties doorzoekbaar te maken en is geschikt om in een geclusterde omgeving te draaien. Naast de standaard Lucene-functionaliteit biedt Solr veel meer ondersteuning (bijvoorbeeld faceted navigation, auto-suggest en verbeterde zoekopdrachten). |
|
Releasebeheer |
Gemiddeld verschijnt er elke twaalf maanden een minor/major release. Meestal worden nieuwe releases voorgesteld en bepaald door de project committers. |
|
Aantal installaties |
Meer dan 50.000 wereldwijd Meer dan 2.000 in de Benelux. |
|
Roadmap 2010-2011 |
Er wordt hard gewerkt aan Solr versie 1.5, die verwacht wordt in de tweede helft van 2010. Voor deze release ligt de focus op het verbeteren van de performance en bestaande functionaliteit. Daarnaast is er ook aandacht voor het eenvoudiger maken van installaties op grote schaal (in de vorm van de SolrCloud versie). |
|
Standaardmodules |
|
|
Referenties |
iLocal (2008), www.ilocal.nl Online op geo-lokatie gebaseerde bedrijvengids
Europeana (2009), www.europeana.eu Europese online zoekmachine voor cultureel erfgoed informatie. CNet (2005), www.cnet.com Gebruikt Solr voor het zoeken van producten en facet-gebaseerd browsen (Solr is origineel ontwikkeld door CNet).
Netflix, www.netflix.com Gebruikt Solr voor het doorzoeken van hun website NASA, http://nebula.nasa.gov/services/ Gebruikt Solr als de enterprise zoekcomponent in hun NEBULA cloud computing platform. |
|
Samenvatting |
Solr’s belangrijkste zoekinterface is een webservice API. Zoekresultaten (en samenvattingen) worden geretourneerd in de vorm van XML. Solr biedt daarnaast ook een aanpasbare zoekinterface. Er bestaan ook andere tools die een rijkere interface bieden bovenop Solr (zie: http://www.jteam.nl/news/solrexplorer.html) |
|---|---|
|
Aantal en relevantie |
Solr retourneert het totaal aantal gevonden resultaten (gepagineerd). Voor elk gevonden resultaat wordt ook de relevantie aangegeven. |
|
Stemming |
Solr biedt standaard vele tekstanalyse-componenten voor stemming (de meeste talen worden ondersteund). De meestgebruikte methode is gebaseerd op het Porter-algoritme. |
|
Spelling en synoniemen |
|
|
Zoekresultaat |
Solr retourneert de zoekresultaten samen met de uitgevoerde zoekopdracht. Typisch wordt dit geretourneerd in een machine-begrijpbaar formaat (bijvoorbeeld XML, JSON, etc). Het is eenvoudig om te bepalen wat er per zoekopdracht aan informatie wordt teruggegeven. |
|
Verfijning |
Solr biedt verschillende mechanismen voor het verfijnen van zoekresultaten: – Uitgebreide ondersteuning voor verschillende en complexe zoekopdrachten (uitgebreider dan wat Apache Lucene biedt. – Relevantiebepaling op basis van functies op basis van documentattributen – Aanpasbaar en uitbreidbaar scoring-algoritme – Ondersteuning voor ‘boosts’ van velden en termen (zowel tijdens het indexeren als tijdens het zoeken) – Relevantiebepaling op basis van relevante termen en de onderlinge afstand daarvan |
|
Sortering |
Het is mogelijk om te sorteren op relevantie en elk ander veld binnen de geïndexeerde documenten. Daarnaast is het ook mogelijk om te sorteren op meerdere velden (‘nested sorting’). Er wordt gewerkt aan de mogelijkheid om te sorteren op basis van functies over documentattributen. |
|
Operatoren |
Solr biedt ondersteuning voor verschillende zoekoperatoren:
|
|
Metadata |
Solr biedt standaardintegratie met Apache Tika, wat het mogelijk maakt om metadata te extraheren uit verschillende documentformaten. |
|
Bestandstypen |
Alle bestandsformaten die worden ondersteund door Apache Tika (zie: http://lucene.apache.org/tika/0.6/formats.html) |
|
Markering |
Solr ondersteunt markering (highlighting). |
|
Contentvergaring |
Solr biedt standaard een Data Import Handler module (DIH) die kan worden gebruikt voor het vergaren van content uit een RDBMS en uit XML-gebaseerde feeds van het web. Om websites of intranets te crawlen en het vergaren van content uit andere systemen zie: Apache Nutch and Lucene Connectors Framework (LCF). Het is ook mogelijk om content van buitenaf naar Solr te sturen (push mechanisme). |
|
Nederlandstalig |
Alle documentatie en gebruikersinterfaces zijn in het Engels. |
|
Indexeerproces |
Solr’s Data Import Handler (DIH)-module ondersteunt zowel incrementeel als volledig indexeren. |
|---|---|
|
Aansluitingen |
Documenten uit verschillende subsystemen kunnen worden opgeslagen in dezelfde index. Er kan dan vervolgens worden gefilterd op basis van vooraf gedefinieerde attributen tijdens het uitvoeren van een zoekopdracht. Solr ondersteunt ook het gebruik van verschillende indexen per subsysteem en het apart doorzoeken van elke index. |
|
Omgevingen |
Solr biedt standaard een Data Import Handler module (DIH) die gebruikt kan worden voor het vergaren van content uit een RDBMS en uit XML-gebaseerde feeds van het web. Om websites of intranets te crawlen en het vergaren van content uit andere systemen zie: Apache Nutch and Lucene Connectors Framework (LCF). |
|
Hosting |
Solr kan worden geïnstalleerd als een stand-alone server. Dit kan zowel als een enkele instantie, alsmede ook als onderdeel van een geclusterde omgeving. In dit laatste geval kunnen sommige instanties dienen als replica’s (voor load-balancing en failover). |
|
Configuratie |
Configuratie van Solr gebeurt met een verzameling XML-bestanden. |
|
Optimalisatie |
Het is mogelijk om Solr’s index en zoekproces te configureren en verfijnen op verschillende niveaus:
|
|
Thesaurus |
Solr biedt standaard ondersteuning voor synoniemen. Verder biedt Solr ook ondersteuning voor spellingscontrole gebaseerd op dictionaries. WordNet is een online dictionary die standaard wordt ondersteund, maak het is ook mogelijk een dictionary te gebruiken die is gebaseerd op de geïndexeerde termen zelf. |
|
Recall/precision |
Solr ondersteunt het verfijnen van de recall / precision door het gebruik van verschillende query types. |
|
Indexeerlogs |
Solr’s web interface voor administratie biedt hulpmiddelen voor het geven van inzicht in de index en het inzichtelijk maken van het tekst analyse proces (zowel tijdens het indexeren als tijdens het zoeken). |
|
Faceted search |
Solr biedt standaard ondersteuning voor faceted search. |
|
Rapportage |
Solr ondersteunt de analyse van het zoekproces door inzichtelijk te maken hoe en waarom documenten worden gevonden voor een gegeven zoekopdracht. Solr biedt ook extra informatie en statistieken over de structuur van de index (zowel via de administratie interface als direct via de webservice). |
|
Besturingssysteem |
Lucene is beschikbaar op elk platform, aangezien het is ontwikkeld in Java. |
|---|---|
|
Browsers |
Solr wordt voornamelijk gebruikt als webservice, die data teruggeeft in de vorm van bijvoorbeeld XML en JSON, die elke browser aankan. De administratie web interface van Solr wordt ook ondersteund door alle belangrijkste browsers (IE, Safari, Firefox en Chrome). |
|
Architectuur |
Solr is voornamelijk ontwikkeld om te gebruiken als een search service. Het biedt alle functionaliteit aan als een REST-achtige webservice. Dit zorgt ervoor dat Solr platform- en taalonafhankelijk is. Het is ook mogelijk om Solr direct binnen een Java-applicatie te gebruiken, maar dit wordt zelden gedaan. |
|
Databases |
Solr is niet afhankelijk van een database of enige andere externe service. |
|
SDK, API |
Aangezien de functionaliteit die Solr biedt beschikbaar is via het HTTP protocol, kan vanuit elke taal en omgeving waar het HTTP protocol beschikbaar is, worden gecommuniceerd met Solr. Er bestaan vele client libraries om specifiek met Solr te communiceren, geschreven in verschillende talen (zoals Java, PHP, Ruby, Python, .NET, C#, Perl, Javascript, etc). |
|
Integratie |
De webservice die Solr aanbiedt ondersteunt een aantal formaten voor het uitwisselen van data, zoals: XML, JSON, Ruby en Python. |
|
Licentiemodel |
Open source (Apache 2) |
|---|---|
|
SaaS/ASP |
Niet mogelijk |
Solr is vanaf het begin ontwikkeld met een helder doel voor ogen: het beschikbaar maken van open source enterprise search voor iedereen. Solr is gebouwd bovenop Apache Lucene, de defacto standaard open source Information Retrieval Library.
In tegenstelling tot Lucene, schermt Solr de gebruiker af van de complexiteit van een schaalbare en rijke zoekoplossing. De grote hoeveelheid functionaliteiten en de eenvoud in het gebruik (installatie, uitbreiding en interactie) maken Solr tot de ideale zoekoplossing voor veel verschillende domeinen.
Solr wordt vaak gebruikt als backbone voor e-commerce websites (vanwege de efficiënte en uitgebreide ondersteuning voor facetten). Maar daarnaast is Solr inmiddels ook een goed open source alternatief voor de Enterprise Search oplossingen die worden aangeboden door commerciële leveranciers (zoals Autonomy, Microsoft Fast, Google applicances, etc).
De laatste jaren implementeren en/of migreren steeds meer organisaties hun zoekoplossingen op basis van Solr in plaats van een commerciële, closed source oplossing of een eigen oplossing op basis van Lucene. Apache Solr zou voor elk zoekproject overwogen moeten worden, aangezien de open source Apache 2 licentie kan zorgen voor een grote return on investment ROI zonder functionaliteit op te offeren.
Apache Solr lijkt een prima alternatief voor organisaties die een krachtige zoekfunctonaliteit zoeken, maar niet opnieuw het wiel willen (laten) uitvinden zoals bij ‘toolkit’ Apache Lucene al snel het geval is. Dit product is zeker ook geschikt voor de complexere webomgevingen en grotere indexen. Maar met name het gebruiksvriendelijk maken van de beheeromgevingen en ook het zoekresultaat voor de eindgebruikers en bezoekers blijft een uitdaging.

Solr biedt een administratie web interface om het gedrag van Solr runtime in de gaten te houden. Deze tool kan ook gebruikt worden voor het beter begrijpen van het indexeer en tekstanalyse proces.
Meer informatie over Solr Explorer