Solr, et søgemaskine værktøj, bruges ofte af websteder for at gøre søgninger nemmere og hurtigere. Sunspot Solr er en Ruby-bibliotek, der fungerer som et wrapper omkring Solr og gør det muligt at bruge den fra Ruby on Rails-applikationer. Sunspot Solr bruger forskellige index, herunder standard og diskede index. Nogle gange er det nødvendigt at omskrive disse index.
At udføre en omindexering truende kan være farligt, idet resultatet vil være tab af eksisterende index information. I denne artikel vil vi se på metoder til at omindexere Sunspot Solr, uden at skulle tabe nuværende index.
Den første ting, du skal gøre for at omindexere Sunspot Solr uden at skulle tabe alle dine data, er at gemme dine aktuelle opsætningsfiler før du begynder. Den anden metode til forsigtig omindexering af Sunspot Solr er at oprette backup kopier af JVM optimeret Index fra din jvm-mappe. Dette trin er nødvendigt for at undgå tab af alle dine filer.
Når opbevaring af dynamisk optimerede indexfil har fundet sted, kan du begynde på reindeksering af dine filer ved hjælp af ” java -jar ./post.jar” kommandoen. Dette trin bruges til ikke blot at indlæse dataene i det nye dynamiske index format fra servers hukommelse, men også konverterer de optimerede diskede indexfiler til den nye format. Bemærk dog, at hvis din server er stor og har meget store diskede indexfiler, kan denne kommando tage lidt tid at udføre.
Endelig når postens kommando har overstået med succes, skal du kontrollere om din dynamisk optimerede indeksfil har lavet backup korrekt ved hjælp af ”java -jar . bin/optool” kommandoen. Vi har nu færdiggjort den solide reindeksering af Sunspot Solrs server med succes uden mistede filer . Du kan nu instruere din webserver til at benytte den nye version af Sunspot Solrs optimerede Indeksfiler.
Sunspot Solr er et nemt værktøj, der gør det muligt at søge i store datamængder på en effektiv måde. Det er et af de mest anvendte open source-værktøjer til søgning – især til sort søgning. Imidlertid bliver dataene i Sunspot Solr undertiden ændret, og derfor er der ofte behov for at reindeksere det.
Nogle mennesker tror, at reindeksering skal ske ved at slette eksisterende indekser. Dette er dog ikke rigtigt – det er muligt at genindeksere Sunspot Solrs databaser uden at røre de eksisterende indekser. Reindeksering kan opnås ved fuld reindeksering eller delvis reindeksering, afhængig af hvilken form for ændringer som foretages i dataene.
Fuld reindeksering betyder at alle lagrede oplysninger skal genindekseres, hvilket kan tage meget lang tid, især for store datamængder. Derfor bør man ofte undgå mere end en fuld reindeksering. Til gengæld er delvis reindeksering meget mere effektiv og kræver meget mindre tid. Det kan gøres ved at man manuelt markerer de dele, der skal genindekseres og derefter udfører den nødvendige reindeksering.
Hvis du ønsker at opdatere Sunspot Solrs indekser uden at slette dem, bør du overveje at bruge delvis reindexing som en løsning for at effektivt opdatere databasen.Sunspot Solr er et af de mest populære søgeværktøjer i verden. Det gør det nemmere at skalere og håndtere internethastigheder og hurtig søgning. Men desværre kan det til tider være nødvendigt at skulle reindeksere Sunspot Solr, for at få det yderste ud af dit system. Heldigvis behøver du ikke drage fordel af denne proces ved at droppe dine indekser – du kan sagtens gøre det lidt mere elegant.
For at starte med skal du første igangsætte en ‘dry-run’. Dvs. at indlæse solreeksempel og se om nogle filer er defragmenteret, fra en tidligere re-indeksering. Hvis det viser sig at der er filer, kan du fjerne dem eller inddele dem i logfilen. Når du har undersøgt filerne, er du klar til at starte processen med selve reindekseringen.
Når du først har iværksat reindekseringen, skal du altid holde øje med hvad der foregår. Sørg for løbende at spotte enhver potentiel fejl og sørg også for at regelmæssigt at checke op på om alle medrapporterede berøringer har virket som de skulle har.
Når det kommer til faktisk reindeksering er processen ret simpel. Du skal bare inviterer alle dataene, definere term-felterne og genindeksere beholderen – også kaldet indexplaceringen. Hav i mente, at der ikke altid vil være et direkte resultat af den indhylle generationsprocess som solservicen udfører – men heldigvis kan du altid bruge loggen til at se hvor processen står.
Sidst men ikke mindst husk altid at gemme backup af alle filerne før du begynder processen med reindeksering. Det kan tage lang tid (og muligvis spare dig for unødig frustration!), så tjek altid om backup’et fungerer som planlagt efter færdiggørelsen af processen.
At reindeksere Sunspot Solr uden at droppe dine indekser, er altså ret ligetil – og resultere i et mere flydende og problemfrit resultat!