Elke moderne organisatie verwerkt karrenvrachten informatie. Het is dus belangrijk dat informatie ook teruggevonden kan worden. Een zoekmachine die lokaal draait, kan daar bij helpen. Wij bekeken een commerciële (TiNK) en twee open-sourceoplossingen (Apache Lucene en Xapian/Recoll).
In een bedrijf wordt heel wat informatie verwerkt: er komen gegevens het bedrijf binnen en het bedrijf stuurt ook informatie naar buiten. Afhankelijk van het soort gegevens kunnen daar wettelijke verplichtingen bij horen, zoals een verplichting om de gegevens een aantal jaren te bewaren. Het ligt voor de hand dat je in staat zou moeten zijn vergaarde informatie te doorzoeken en snel antwoorden te krijgen. Als we specifieke informatie willen hebben, kunnen we die terugvinden met behulp van een zoekmachine. De meesten van ons gebruiken die dagelijks op internet. Maar je kunt ook een zoekmachine in je eigen bedrijf draaien: een soort lokale Google. Google levert daar trouwens ook (dure) appliances voor. In deze serie kijken we echter naar los verkrijgbaar zoeksoftware waarmee je een eigen zoekserver kunt bouwen: het commerciële TiNK Search (Windows) en de open-sourceoplossingen Apache Lucene en Xapian/Recoill.
Desktop versus server
De bekendste lokale zoeksoftware is de desktopzoekmotor. Die dient om snel informatie op te zoeken op één individuele pc. Als het echter gaat om een zoekmotor voor het hele bedrijf, dan volstaat desktopsoftware niet. Dan hebben we gecentraliseerde data-opslag nodig voor de bedrijfsinformatie en een centraal draaiende zoekserver waarmee we de data kunnen doorzoeken en raadplegen. Dat kan een zoekserver zijn voor netwerkvolumes, of een zoekserver die op een nas- of fileserver draait of die verbonden is met een san. Het zal je niet verbazen dat zoekservers vaak gecombineerd worden met complete document- en kennisbeheersystemen. Hier interesseren we ons voornamelijk voor zoekservers die kunnen samenwerken met netwerkopslag.
Vereisten
Bij alle zoekmotoren moet de beschikbare data eerst geïndexeerd worden voordat die opgezocht kan worden. We zoeken met behulp van zoektermen. Die moeten voldoende geavanceerd zijn, zodat we allerlei logische constructies in de zoektermen kunnen aanbrengen die aangeven wat we wel en niet in de zoekresultaten willen hebben. Een optie om een waardering van zoekresultaten uit te drukken kan nuttig zijn om toekomstige zoekresultaten mee te verfijnen. De meest geavanceerde zoekservers zullen opties hebben om te zoeken in metagegevens. Metagegevens zijn gegevens over gegevens. Denk maar aan omschrijvingen van gegevens. Als je maar een vage voorstelling hebt van iets dat je zoekt, maar je herinnert je niet genoeg om specifieke doelgerichte zoektermen te vormen, dan kunnen metadata helpen om een eerste selectie te maken. Bij centraal opgeslagen data geldt natuurlijk ook dat er rechten en autorisaties van toepassing zijn. Niet iedereen mag alle data bekijken. Dat moet dan ook gelden voor de zoekresultaten. De rechten en autorisaties van een gebruiker voor opgeslagen informatie moeten doorgetrokken worden naar de zoekresultaten, zodat er geen zoekresultaten getoond worden voor data die de gebruiker sowieso niet mag zien.
Testmethode
Wij installeerden de zoekservers in een gevirtualiseerde Windows 2003 SP2 Enterprise-server die we 3 GiB ram gegeven hadden voor Windows-gebaseerde zoeksoftware. Voor Linux-zoeksoftware gebruikten we een gevirtualiseerde Ubuntu 10.04.2 LTS 'Lucid Lynx'-server met 1 GiB ram.
Onze hypervisor had een sixcore cpu (AMD Phenom II X6 1055T) met 16 GiB en 12 TB opslagruimte ter beschikking, waarvan tijdens onze test minstens de helft van alle systeembronnen vrij was. De directoryboom met te indexeren documenten stond op deze 12 TB opslagruimte. Het gaat om ruim 13.000 documenten, tabellen en plaatjes. We meten hoe lang de initiële indexering duurt en hoe lang het duurt om zoekresultaten te genereren als we een zoekterm opgeven.
Algemene conclusie
Als je de meest uitgebreide functionaliteit in een kant-en-klare vorm wenst, biedt een commercieel pakket zoals TiNK Search echt wel waar voor zijn geld. Voor het mkb is het echter waarschijnlijk te zwaar en te duur. In het open-sourcewereldje zijn er ook meer dan genoeg zoekmotoren te vinden. Dan moet je echter zelf aan de slag, of een en ander extern voor je laten bouwen. Apache levert met Lucene een op Java gebaseerde zeer krachtige zoekmotor, waarvoor dan zoekapplicaties ontworpen moeten worden. Xapian en Recoll verrasten ons met een gelijkaardige functionaliteit als Lucene en met de hoogste indexeer- en zoeksnelheid van allemaal. Wat ons betreft verdient die dus zeker je aandacht.
De Serie: zoekmotoren en -servers
Deel 1: Xapian & Recoll levert verrassend goede zoekmachine op
Deel 2: TiNK Search
Deel 3: Apache Lucene
Deel 4: Xapian en Recoll