ESOS

Ηλεκτρονική εφημερίδα για την παιδεία, με δυνατή φωνή και πάνω από 800.000 μοναδικούς επισκέπτες τον μήνα.

Δες το site
esos

Μεταφορά πάνω από 40.000 άρθρα

Αν μπορούσαμε να μετρήσουμε την «περιουσία» ενός portal, τότε αδιαμφισβήτητα τα άρθρα αποτελούν την μέγιστη αξία για αυτό.

Οι χιλιάδες ώρες συνεντεύξεων, ρεπορτάζ και έρευνας που έχουν γίνει τα τελευταία χρόνια οδήγησαν το esos.gr στην κορυφή της ενημέρωσης για την παιδεία.

Το βασικότερο πρόβλημα που είχαμε να αντιμετωπίσουμε ήταν με την μεταφορά όλων αυτών των άρθρων.

Εξασφάλιση μοναδικότητας των εικόνων

Οι εικόνες των άρθρων στο παλιό site, αποθηκεύονταν με βάση το id του άρθρου που αντιστοιχούσαν. Για παράδειγμα, μια εικόνα που υπήρχε στο άρθρο με id 40000, θα είχε όνομα αρχείου 40000.jpg. Αν η ίδια εικόνα υπήρχε στο άρθρο 40001, το σύστημα δημιουργούσε αντίτυπο της εικόνας με όνομα αρχείου το id του άρθρου.

Ενδεικτικά αναφέρουμε, ότι υπήρχε εικόνα που αντιστοιχούσε σε πάνω από 500 άρθρα με αποτέλεσμα να υπάρχουν πάνω από 500 αντίτυπα της συγκεκριμένης εικόνας.

Η λύση που δώσαμε: Για την εξασφάλιση της μοναδικότητας των εικόνων, χρησιμοποιήσαμε αλγόριθμο αναγνώρισης ίδιων εικόνων, Perceptual hashing, όπου σύγκρινε κάθε εικόνα με όλες τις υπόλοιπες. Όταν ο βαθμός ομοιότητας ήταν πάνω από 85%, τότε οι εικόνες θεωρούνταν ίδιες.

Μηχανή αναζήτησης

Η μηχανή αναζήτησης που επιλέξαμε να χρησιμοποιήσαμε στο esos.gr, είναι η ελαστική αναζήτηση (elastic search).

Πρόκειται για μια μηχανή αναζήτησης πραγματικού χρόνου (Real time search) και ανάλυσης δεδομένων (analytics engine).

Η ελαστική αναζήτηση βασίζεται στο apache lucene, μια υψηλών επιδόσεων με αρκετά χαρακτηριστικά βιβλιοθήκη για μηχανές αναζήτησης.

Χρήση greek stemmer (skroutz) για βελτιστοποίηση των αποτελεσμάτων αναζήτησης

Ένα από τα βασικότερα προβλήματα που ανακύπτουν στις μηχανές αναζήτησης που χρησιμοποιούν οι περισσότερες ιστοσελίδες, είναι ότι όταν κάποιος ψάχνει μια λέξη όπως π.χ. “ποδήλατα”, η μηχανή θα επιστρέψει τα αποτελέσματα (σελίδες) που περιλαμβάνουν μόνο τη λέξη “ποδήλατα”.

Αν δηλαδή, η σελίδα περιλαμβάνει τη λέξη “ποδήλατο”, δεν θα εμφανιστεί στα αποτελέσματα, γιατί πρόκειται για μια διαφορετική λέξη.

Αυτό σημαίνει, ότι είτε υπάρχει μεγάλη πιθανότητα ο χρήστης να μην βρει αυτό που ψάχνει σε έναν ιστότοπο και να εγκαταλείψει τη σελίδα είτε θα χρειαστεί να πραγματοποιήσει πολλές αναζητήσεις με παραλλαγές του όρου αναζήτησης για να βρει αυτό που ψάχνει.

Η λύση στο παραπάνω πρόβλημα είναι η χρήση του stemming, είναι η διαδικασία αφαίρεσης από τις λέξεις των παραγώγων και καταλήξεων και μείωσής τους στη ρίζα τους (stem).

Με τη διαδικασία αυτή η μηχανή αναζήτησης βρίσκει ότι η ρίζα της λέξης “ποδήλατο” είναι “ποδήλατ” και αποθηκεύει αυτή στο ευρετήριό της.

Έτσι, είτε ο χρήστης ψάχνει για “ποδήλατο” είτε για “ποδήλατα” τα αποτελέσματα της αναζήτησης θα αυτά που περιέχουν τη ρίζα της λέξης. Με την προσθήκη του SkroutzGreekStemmer, το οποίο επεκτάθηκε από το skroutz, στην ElasticSearch, έχουμε 166 επιθέματα των ελληνικών λέξεων, αυξάνοντας σε μεγάλο βαθμό την ποιότητα των αποτελεσμάτων της μηχανής αναζήτησης ElasticSearch.

Δες περισσότερα έργα