Autocomplete met Solr (Dutch)

Autocomplete is een functie die al langere tijd beschikbaar is in de systemen die met Meresco gebouwd worden, maar bij Seecr en haar opdrachtgever Kennisnet bestond de behoefte aan een duidelijk overzicht van de verschillende methodes voor een autocomplete functie.

Meresco levert die functies via Solr. Hieronder analyseren we vier methodes van autocomplete die door Solr 4.0 worden aangeboden op basis van de volgende criteria.

De methode:

  1. geeft aanvulling op velden met één waarde (bijvoorbeeld: datum=01052013) of met meerdere waarden (bijvoorbeeld: tags=leuk, spannend).
  2. kan achteraan , maar ook vooraan of middenin aanvullen: “auto”, “mobiel” en “autobiel” leveren “automobiel” op.
  3. geeft aanvullingen binnen een zoekresultaat (bijvoorbeeld: aanvulling binnen het resultaat van de vorige zoekvraag) of op de gehele index.
  4. geeft (exacte) aantallen voor de te verwachten resultaten.
  5. kan snel aanvullen uit een lijst met zeer veel verschillende waarden (>100.000).
  6. werkt op een standaard index, of op een apart te bouwen index.

De vier methodes voor autocomplete in Solr (en Meresco) werken op basis van:

  1. De Facet-functie
  2. Alle Termen in de Index
  3. De Suggester Component
  4. Een N-Grammen Index

De Facet-functie
Met behulp van de standaard facet-functie kunnen alleen achteraan aanvullingen gegenereerd worden. Dit werkt erg efficiënt, ook binnen zoekresultaten. Het mooie er van is dat bij elke term het te verwachten aantal resultaten getoond kan worden. Met erg veel termen wordt het echter wel trager.

Voordelen:
–       Geeft aanvullingen in velden met meerdere waarden.
–       Geeft aanvullingen binnen een zoekresultaat.
–       Geeft exacte aantallen voor de te verwachten resultaten.
–       Te gebruiken met een standaard index.

Nadelen:
–       Kan alleen achteraan aanvullen.
–       Wordt minder snel bij zeer veel verschillende waarden.

Alle Termen in de Index
Deze methode geeft aanvullingen op basis van alle geïndexeerde waarden in een index. Het ondersteunt aanvullen achteraan, vooraan en middenin. Maar alleen achteraan werkt snel, ook bij zeer veel waarden in de index.

Voordelen:
–       Geeft aanvullingen in velden met meerdere waarden.
–       Kan achteraan, vooraan en middenin aanvullen.
–       Te gebruiken met een standaard index.
–       Werkt efficiënt met zeer veel verschillende waarden.

Nadelen:
–       Vooraan en middenin aanvullen werkt niet efficiënt.
–       Alleen een benadering van het aantal te verwachten resultaten.
–       Kan geen aanvullingen geven binnen een zoekresultaat.

De Suggester Component
Via de Suggester component kan een aanvulling gedaan worden door het aan te vullen woord te zien als woord waarvoor spellingscontrole gedaan moet worden. Dit werkt efficiënt voor aanvulling achteraan, vooraan en middenin door middel van een speciale index. Het mooie van deze oplossing is dat er verschillende algoritmen kunnen worden gekozen om de aanvulling te produceren.

Voordelen:
–       Geeft aanvullingen in velden met meerdere waarden.
–       Kan achteraan, vooraan en middenin aanvullen.
–       Werkt efficiënt met zeer veel verschillende waarden.

Nadelen:
–       Kan geen aanvullingen geven binnen een zoekresultaat.
–       Geen informatie over het aantal te verwachten resultaten.
–       Er moet een speciale index (tree) voor onderhouden worden.

Een N-Grammen Index
Deze oplossing wijkt sterk af van de andere. De aanvullingen gaan op basis van een query op een speciale index van delen van woorden. Het woord “snel” wordt hierin geïndexeerd als “sn”, “ne” en “el”. Omdat dit een normale zoekopdracht is, geeft dit geen aanvullingen terug, maar moet dit gecombineerd worden met de facet-functie of het ophalen van opgeslagen waarden. Het mooie aan deze oplossing is dat het gemakkelijk uitgebreid kan worden met speciale spellingcheckers of fonetische suggesties.

Voordelen:
– Kan achteraan, vooraan en middenin aanvullen.
– Geeft exacte aantallen voor de te verwachten resultaten in combinatie met de facet-functie.
– Werkt binnen een zoekresultaat.
– Werkt efficiënt met zeer veel verschillende termen.

Nadelen:
– Niet geschikt voor velden met meerdere waarden.
– Er moet een speciale n-gram index voor worden opgebouwd.

Samenvatting
In onderstaande tabel worden de voor en nadelen naast elkaar gezet. Daaruit is duidelijk op te maken dat de verschillende methodes heel verschillend scoren op onze criteria.

  Facet-functie Termen Suggester N-Grammen
Meerdere waarden per veld

+

+

+

-

Achteraan

Vooraan

Middenin

+

-

-

+

+/-

+/-

+

+

+

+

+

+

Binnen een zoekresultaat

+

-

-

+

Exacte aantallen

+

-

-

+

Veel verschillende waarden

-

+

+

+

Index

standaard

standaard

tree

n-gram

Conclusie
Uit de resultaten komt naar voren dat voor een bepaalde toepassing een specifieke methode beter werkt dan andere. In twee gevallen is er ook een speciale index nodig om het goed, en efficiënt, te laten werken. Het kiezen van de juiste autocomplete methode is daarom dus een zaak van grondige analyse van de wensen.

Gastblog Harriet de Man: Meresco Open (Dutch)

Harriet de Man is teamleider informatiemanagement bij Openbare Bibliotheek Amsterdam en was een deelneemster van Meresco Open op 16/11/’11.

Op woensdag 16 november namen Karin de Bruin; informatiemanager van de Openbare Bibliotheek Amsterdam (OBA) en ikzelf in Utrecht deel aan de Meresco Open bijeenkomst georganiseerd door Seecr en SURFfoundation met als thema ‘Metadata in the cloud’. Behalve de OBA waren bij de bijeenkomst vertegenwoordigd DANS, het Gemeente Museum (Den Haag), R5, Emid Consult, Deltares, Kennisnet en de UvTilburg.

Vragen
Voorafgaand aan deze bijeenkomst stelden Karin en ik onszelf de vragen:

  1. Wat gaat de cloud betekenen voor (openbare) bibliotheken?
  2. Als de open index de aquabrowser opvolgt, hoe gaat dat er dan in de praktijk uitzien?

Language-model-based ranking
Karin en ik vielen qua onderwerpen met onze neus in de boter, want Erik Groeneveld van Seecr had juist die morgen een bezoek gebracht aan Bibliotheek.nl en schetste de laatste stand van zaken van hun proof of concept voor ons. Gebruikers zoeken en vinden veel informatie in Wikipedia, Youtube en op Library Thing. Daarbij formuleren zij hun zoekvraag in ‘gewone mensentaal’ en zoeken doorgaans niet in bibliotheekcatalogi. De uitdaging is deze zoektaal in de Nationale Bibliotheek Catalogus (NBC) te matchen met ‘nette bibliotheekconcepten’. Op dit moment is verfijning van de hits (‘facetten’) mogelijk op type (materiaal), stijl, auteur, componist en taal. Als testbronnen zullen Wikipedia, kranten, youtube, CDR en MUI worden geladen. Deze worden opgeslagen in RDF-formaat. Aan de hand van een test op een – nu nog – kleine database gaf Erik de meerwaarde aan van dit algoritme. Inspiratie putte Seecr onder meer uit het artikel “Language-model-based ranking for queries on rdf-graphs” over communities als Wikipedia.

Meresco software en kennisdeling
Met de methodologie van Open Space wil Seecr kennis delen stimuleren tussen geïnteresseerden binnen én buiten de Meresco community. Iedere innovatieve toepassing die voor één gebruiker gebouwd wordt komt via de Meresco software ten goede aan de hele community.

Bibliothecaris van de toekomst
Vergaderen aan de hand van deze formule levert bijeenkomsten op waarin de deelnemers zich gelijkwaardig voelen en gedragen, waardoor veel creatief denken en kennisdeling plaats kan vinden. Dit gebeurde ook tijdens de bijeenkomst van 16 november bij Seecr. Toepassing van deze formule binnen de OBA leverde reeds een geïnspireerde bijeenkomst over de bibliothecaris van de toekomst op.

Gastblog Tzadiq Schimmel: Metadata in de Cloud en ‘lots of Open Space’ (Dutch)

Tzadiq Schimmel is Information Specialist bij Deltares en was een deelnemer van Meresco Open op 16/11/’11.

Bij een bijzonder product zoals Meresco is het heel belangrijk te weten wat jouw doel is dat je met dit middel wilt bereiken. Anders gezegd: hoe past Meresco bij haar klanten? En hoe past de ‘Cloud’ daarin? Wat zijn de behoeften? Hoe wil Seecr in de rol ontwikkelaar of ‘enabler’ het speelveld faciliteren?

Community
Fragmenten van die vragen hebben we in de Open Space sessies uitgediept. Ik heb gemerkt dat de ruimte van het speelveld groot is. De vraag is hoe je die ruimte comfortabel maakt met relevante wensen en antwoorden daarop. Een community? Het aanwezige gezelschap was gemêleerd en daarmee werd de belofte van een goede 360 graden kijk op het speelveld daadwerkelijk ingelost.

Wel of niet in de Cloud
Wat zijn de feiten, meningen en ingrediënten voor een optimaal aggregatieproces voor metadata van meerdere organisaties? Dat was mijn leerdoel voor de Open Space sessies. In die vraag ligt ook een belangrijke rol van toegevoegde waarde van de Cloud besloten. De Cloud kan het daadwerkelijke delen van metadata goed faciliteren. De Cloud wordt door menigeen ervaren als een onveilig gebied voor vertrouwelijke data. Misschien is het geruststellender om al te vertrouwelijke gegevens gewoonweg niet te delen in de Cloud. Wil je met de Cloud aan de slag voor het uitwisselen van gegevens en informatie, dan zul je dus binnen je organisatie al moeten bepalen welke metadata al dan niet vertrouwelijk is. Het werkproces waarin metadata tot stand komt moet daarop ingericht zijn.