Το προφίλ μας στο Google Plus
0

Everything – Μια πολύμορφη μηχανή αναζήτησης αρχείων

Βρείτε *άμεσα* και αποκτήστε πρόσβαση σε οποιοδήποτε αρχείο, σε οποιονδήποτε δίσκο, σε οποιονδήποτε υπολογιστή σας – τοπικό ή απομακρυσμένο, χωρίς να τον «γονατίσετε». Αρκεί να χρησιμοποιείτε Windows και NTFS partitions.

Η κλασική αναζήτηση αρχείων των Windows έχει πάψει πλέον να είναι πρακτική, αφού από τότε που οι χωρητικότητες των δίσκων άρχισαν να μετρούνται σε gigabytes και ο αριθμός των αρχείων ενός μέσου συστήματος ξεπέρασε το φράγμα των τετραψήφιων, η αναζήτηση ενός αρχείου με αυτόν τον τρόπο άρχισε να αργεί υπερβολικά. Η λύση που προωθήθηκε για αυτό το πρόβλημα είναι οι εφαρμογές desktop search και έτσι σήμερα για τα Windows υπάρχει μια μεγάλη ποικιλία τέτοιων εφαρμογών (Google / Yahoo! / Windows / Copernic Desktop Search, X1 κ.λπ.). Μάλιστα, στα Windows Vista, το Windows Desktop Search (WDS) έχει ήδη αντικαταστήσει την κλασική αναζήτηση.
Τα προγράμματα αυτά αναλαμβάνουν να δημιουργήσουν και στη συνέχεια να συντηρήσουν ευρετήρια (indexing) με σκοπό να παρέχουν γρήγορη αναζήτηση στις πληροφορίες που είναι αποθηκευμένες σε ένα υπολογιστή. Τα ευρετήρια αυτά πρέπει ανά πάσα στιγμή να περιέχουν ένα αντίγραφο όλων των αναγνώσιμων πληροφοριών που υπάρχουν μέσα σε κάθε είδους αρχείο του συστήματος. Φυσικά, η διαδικασία αυτή είναι εξαιρετικά ακριβή υπολογιστικά και έτσι τα προγράμματα αυτά έχουν μερικές μεγάλες αδυναμίες:

  • Λόγω του αργού indexing αδυνατούν να παρέχουν αποδοτικές (ή δεν παρέχουν καθόλου) αναζητήσεις σε αφαιρούμενα μέσα, mapped network drives και γενικά σε αποθηκευτικά μέσα που είτε η πρόσβαση σε αυτά είναι αργή, είτε τα περιεχόμενά τους αλλάζουν συχνά, είτε αλλάζει συχνά το drive letter που τους αναθέτει το λειτουργικό.
  • Καταναλώνοντας μεγάλο μέρος των πόρων του υπολογιστή καθυστερούν σημαντικά τις υπόλοιπες λειτουργίες του.

Αλλά το αργό indexing δεν είναι το μόνο ελάττωμα αυτών των εφαρμογών. Το λογικό είναι ότι μια καλή μηχανή αναζήτησης θα πρέπει να δίνει ιδιαίτερη προτεραιότητα στην παρακολούθηση των αλλαγών στο file system. Έτσι όταν δημιουργείται, μετακινείται/μετονομάζεται ή διαγράφεται ένα αρχείο σε κάποιο δίσκο, θα μπορεί άμεσα να δημιουργεί, να διορθώνει ή να διαγράφει αντίστοιχα τις κατάλληλες αναφορές στο ευρετήριο. Δυστυχώς όμως, οι περισσότερες εφαρμογές desktop search επικεντρώνονται κυρίως στην αναζήτηση στο περιεχόμενο εγγράφων παρά στην αναζήτηση των ίδιων των αρχείων, δίνοντας προτεραιότητα στο indexing του περιεχομένου αυτών και αφήνοντας σε δεύτερη μοίρα την παρακολούθηση των αλλαγών στο file system. Αυτό έχει αρκετές πολύ δυσάρεστες επιπτώσεις στην απόδοση των εφαρμογών, οι σημαντικότερες από τις οποίες είναι:

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

Windows Desktop Search vs Everything. Στην ίδια αναζήτηση η αναζήτηση των Vista (WDS) επιστρέφει 12.000 αποτελέσματα σε περίπου 20” ενώ το Everything επιστρέφει περίπου 18000 αποτελέσματα αμέσως αφού έχουμε γράψει το “g” στο jpg.Προσθέτοντας, τέλος, σε όλα αυτά και το γεγονός ότι τα περισσότερα προγράμματα desktop search επιλέγουν να μας «προστατέψουν απ’ τους εαυτούς μας» εξαιρώντας από το indexing ένα πολύ μεγάλο αριθμό αρχείων που είτε είναι κρυφά, είτε θεωρούνται αρχεία συστήματος (έλεος! Θέλω να δω αν έχω μια dll και δεν μπορώ) γίνεται εμφανές ότι, ενώ μπορεί να είναι ιδιαίτερα χρήσιμα σε κάποιες άλλες εφαρμογές, η χρήση τους ως αντικατάστατα της παλιάς κλασικής αναζήτησης αρχείων είναι λανθασμένη.
Αυτό το κενό έρχεται να καλύψει το Everything. Το Everything είναι μια εξαιρετικά αποδοτική και γρήγορη μηχανή αναζήτησης αρχείων που λειτουργεί καταχωρώντας στο ευρετήριό του μόνο τα ονόματα των αρχείων. Διατίθεται δωρεάν και αποτελείται μόνο από ένα μικρό εκτελέσιμο αρχείο που δεν χρειάζεται καν εγκατάσταση, οπότε μπορείτε να το εκτελείτε ακόμα και από ένα USB stick ως portable app. Τα χαρακτηριστικά που κάνουν το Everything να ξεχωρίζει μπορούν να χωριστούν σε 5 τομείς (Indexing, Interface, Search Engine, Networking & Resources) οι οποίοι αναλύονται παρακάτω. Για να το δοκιμάσετε καθώς διαβάζετε αυτή την παρουσίαση, προτείνεται να κατεβάσετε την πιο πρόσφατη έκδοση (την 1.2.1 όταν γράφονται αυτές οι γραμμές), η οποία, παρότι είναι beta, παρέχει περισσότερες λειτουργίες ενώ, όσο καιρό την χρησιμοποιούμε, δεν παρουσίασε κανένα πρόβλημα.

Indexing

Προκειμένου να δημιουργήσει και να συντηρήσει το ευρετήριό του, το Everything πρέπει να «μάθει» τα ονόματα από όλα τα αρχεία και τους φακέλους του συστήματος. Αντί όμως να σαρώσει όλους του δίσκους φάκελο προς φάκελο, παρακάμπτει το λειτουργικό σύστημα και αποκτά low level πρόσβαση στο MFT (Master File Table), τον πίνακα όπου το NTFS αποθηκεύει όλα τα σχετικά metadata κάθε αρχείου (όνομα, μέγεθος, permissions κ.λπ.) και στο USN Journal (Update Sequence Number Journal), το log όπου το NTFS αποθηκεύει ταξινομημένες με τη σειρά που συμβαίνουν όλες τις αλλαγές στο file system. Με την low level ανάγνωση του MFT, τo Everything δημιουργεί το αρχικό ευρετήριο απίστευτα γρήγορα ενώ όμοια, με low level πρόσβαση στο USN Journal, μπορεί να το διατηρεί ενημερωμένο ουσιαστικά σε πραγματικό χρόνο και με σχεδόν μηδαμινή κατανάλωση πόρων. Αυτή η χαμηλού επιπέδου πρόσβαση σε προστατευμένα στοιχεία του file system, είναι ο λόγος που το Everything απαιτεί administrator privileges για να λειτουργήσει.
Στο σύστημα της δοκιμής το Everything ολοκλήρωσε το indexing 328.000 αρχείων που καταλάμβαναν 2.2 terabytes σε 5 διαφορετικούς σκληρούς δίσκους σε λιγότερο από 1 λεπτό!
Με αυτού του είδους τις επιδόσεις το Everything σας δίνει την δυνατότητα:

  • plug and play αναζήτησης αρχείων σε αφαιρούμενες συσκευές: Στη δοκιμή, περίπου 3” αφού συνδέθηκε ένας εξωτερικός δίσκος, το Everything ήταν σε θέση να εκτελέσει αναζητήσεις ανάμεσα στα 14.000 αρχεία mp3 που περιείχε.
  • να το εκτελείτε μόνο την στιγμή που το χρειάζεστε: Δεν υπάρχει λόγος να το έχετε συνέχεια ενεργό για να παρακολουθεί τις αλλαγές στα file system, αφού δευτερόλεπτα μετά την εκτέλεσή του μπορεί να έχει ενημερώσει το ευρετήριο με όσες αλλαγές μεσολάβησαν από την προηγούμενη εκτέλεση.

Το αρνητικό σημείο της μεθόδου αυτής είναι ότι λειτουργεί μόνο με NTFS partitions και συνεπώς το Everything δεν μπορεί να καταχωρήσει στο ευρετήριο αρχεία που βρίσκονται σε οπτικούς δίσκους (όπου χρησιμοποιείται συνήθως το ISO9660 ή το UDF ως file system). Το ίδιο ισχύει και για FAT16/FAT32/exFAT partitions αλλά ούτως ή άλλως, τώρα πλέον που το NTFS αναγνωρίζεται από όλα τα λειτουργικά συστήματα, δεν υπάρχει κανένας λόγος να χρησιμοποιεί κανείς τα παρωχημένα αυτά file system με τους ιδιαίτερα δεσμευτικούς περιορισμούς τους (π.χ. το όριο των 4Gb στο μέγεθος αρχείου) και την παντελή έλλειψη ασφάλειας (file permissions).
Τέλος, το Everything προσφέρει μερικές επιλογές όσον αφορά στο indexing συγκεκριμένων partition και φακέλων, τις οποίες μπορείτε να βρείτε στις καρτέλες NTFS Volumes & Exclude List των ρυθμίσεων του προγράμματος (Tools –> Options).

Το κύριο παράθυρο του Everything. Στο συγκεκριμένο στιγμιότυπο γίνεται επίδειξη της δύναμης που σας δίνει το πρόγραμμα με την υποστήριξη regex στη γραμμή αναζήτησης.

Interface

Το Everything διαθέτει ένα λιτό και ελαφρύ GUI, το οποίο μπορείτε να ενεργοποιείτε, είτε εκτελώντας άμεσα την εφαρμογή, είτε -αν είναι ήδη ενεργή- από το ανάλογο εικονίδιο στο system tray, είτε –προαιρετικά- με δεξί κλικ σε ένα φάκελο στον Explorer, είτε –τέλος- με ένα system wide hotkey της επιλογής σας. Είναι τόσο λιτό που αποτελείται μόνο από την γραμμή αναζήτησης, την λίστα αποτελεσμάτων και την γραμμή κατάστασης.
Μάλιστα, όσο συνηθίζετε την χρήση του Everything, μπορεί να παρατηρήσετε ότι σταδιακά τα παράθυρά του θα αρχίσουν να αντικαθιστούν τα παράθυρα του Explorer, αφού κάθε αρχείο ή φάκελος στη λίστα αποτελεσμάτων του Everything συμπεριφέρεται όπως και στον ίδιο τον Explorer, ενώ μέσω του Everything μπορείτε να καταλήξετε ταχύτερα στην λίστα αρχείων με τα οποία θέλετε να εργαστείτε.
Μερικές απλές επιλογές όσον αφορά τον τρόπο εκκίνησης και εμφάνισης του Everything, μπορείτε να βρείτε στις καρτέλες General & View των ρυθμίσεων του προγράμματος.
Εκτός από το GUI όμως, μπορείτε να κατεβάσετε ένα πολύ μικρό εκτελέσιμο από την επίσημη σελίδα το οποίο, εφόσον η κύρια εφαρμογή είναι ενεργή, δρα ως command line interface ώστε να μπορείτε να κάνετε έρευνες και από την γραμμή εντολών.

Η εντολή es αποτελεί το command line interface του Everything και όπως φαίνεται στην εικόνα είναι αρκετά πρακτική για να δημιουργείτε λίστες αρχείων.

Search Engine

Η μηχανή αναζήτησης του Everything αποκρίνεται σχεδόν ακαριαία, γεγονός που επιτρέπει στο πρόγραμμα να κάνει inline search, δηλαδή να εκτελεί την αναζήτηση καθώς γράφετε τα κριτήρια της έρευνας στην γραμμή αναζήτησης και όχι αφού τα γράψετε, πράγμα που επιταχύνει σημαντικά την διαδικασία εύρεσης.
Εκτός αυτού, πίσω από την μηχανή αναζήτησης κρύβεται ένας πολύ δυνατός parser ο οποίος μπορεί να επεξεργαστεί όχι μόνο απλά κριτήρια αναζήτησης (π.χ. συμπαγές μέρος του ονόματος του αρχείου) αλλά και σύνθετα που μπορεί να περιέχουν από τα παραδοσιακά wildcards του DOS (* και ?) και τους απλούς τελεστές Boolean (space για AND και | για OR) μέχρι και regex στη σύνταξη POSIX Extended Regular Expressions (Αν δεν γνωρίζετε πώς να συντάσσετε κριτήρια αναζήτησης με regex, πράγμα που είναι πολύ χρήσιμο για *πάρα πολλές* εφαρμογές πέρα από το Everything και αποτελεί θέμα άρθρου από μόνο του, ρίξτε μια ματιά στο ανάλογο λήμμα της Wikipedia.
Το μειονέκτημα του Everything σε αυτόν τον τομέα είναι ότι τα κριτήρια αναζήτησης μπορούν να αφορούν μόνο στο όνομα των αρχείων και όχι σε άλλες ιδιότητές τους, όπως το μέγεθος, η ημερομηνία δημιουργίας κ.λπ. Επίσης δεν δίνει την δυνατότητα αποθήκευσης των συχνά ζητούμενων αναζητήσεων ως presets, όπως κάνουν διάφορα παρόμοια προγράμματα. Ωστόσο, και τα δύο αυτά χαρακτηριστικά είναι απλά στην υλοποίησή τους και είναι πιθανό ότι θα ενσωματωθούν σε κάποια επόμενη έκδοση του προγράμματος.    
Οι λίγες απλές επιλογές που αφορούν την μηχανή αναζήτησης (ταύτιση κεφαλαίων-πεζών χαρακτήρων, ενεργοποίηση regex κ.λπ.) βρίσκονται στο μενού Search, στο κεντρικό παράθυρο του Everything.

Networking

Οι δικτυακές ικανότητες είναι ο επόμενος άσος στο μανίκι του Everything. Το πρόγραμμα επιτρέπει τον απομακρυσμένο χειρισμό του με δύο διαφορετικούς τρόπους και μάλιστα όχι μόνο για διεκπεραίωση αναζητήσεων από απομακρυσμένους υπολογιστές αλλά και ως μέσο διανομής των αρχείων/αποτελεσμάτων σε αυτούς.
Ο πρώτος τρόπος είναι μέσω του πρωτοκόλλου ETP το οποίο είναι ουσιαστικά το FTP μαζί με μερικές proprietary επεκτάσεις που επιτρέπουν στο Everything να εκτελεί αναζητήσεις. Αφού προαιρετικά ρυθμίσετε ένα port και ένα password στην καρτέλα ETP/FTP των ρυθμίσεων, μπορείτε να επιλέξετε την επιλογή Tools –> Start ETP/FTP server ώστε να ενεργοποιήσετε τον server. Στην συνέχεια μπορείτε να τρέξετε το Everything σε ένα άλλο υπολογιστή του δικτύου και βάζοντας την IP, το port και το password στο παράθυρο Tools –> Connect to ETP server, θα μπορείτε πλέον να κάνετε αναζητήσεις από τον δεύτερο υπολογιστή στα περιεχόμενα του πρώτου. Αν στο ίδιο παράθυρο αφήσατε τσεκαρισμένη την επιλογή Use FTP links, τότε με διπλό κλικ σε οποιοδήποτε αποτέλεσμα αναζήτησης θα μπορείτε να το κατεβάζετε τοπικά μέσω της προκαθορισμένης εφαρμογής που έχετε δηλώσει να χειρίζεται συνδέσμους ftp:// μορφής. Αν οι δύο υπολογιστές βρίσκονται σε τοπικό δίκτυο και ο πρώτος μοιράζει τους δίσκους του μέσω Local File Sharing (Samba) τότε μπορείτε να αφαιρέσετε το τσεκ από την συγκεκριμένη επιλογή και να έχετε πρόσβαση στα απομακρυσμένα αρχεία μέσω του λειτουργικού, με όλα τα πλεονεκτήματα που προσφέρει αυτή η μέθοδος.
To web interface του Everything. Παρατηρήστε τον χρόνο που χρειάστηκε για να εκτελέσει την συγκεκριμένη αναζήτηση. Με κλικ πάνω στα αποτελέσματα μπορείτε να τα κατεβάσετε από τον απομακρυσμένο υπολογιστή στον οποίο τρέχει το Everything.Ο δεύτερος τρόπος είναι μέσω πρωτοκόλλου HTTP. Πάλι, αφού προαιρετικά ρυθμίσετε τις λεπτομέρειες στην καρτέλα HTTP των ρυθμίσεων, μπορείτε να ενεργοποιήσετε ένα εξειδικευμένο web server επιλέγοντας Tools –> Start HTTP Server. Με αυτό τον τρόπο, μπορείτε να χειρίζεστε απομακρυσμένα το Everything του υπολογιστή σας μέσω του browser ενός άλλου υπολογιστή και χωρίς να χρειάζεται να τρέξετε το Everything και σε εκείνον. Θα χρειαστεί απλά να πληκτρολογήσετε στην address bar του browser την IP του υπολογιστή στον οποίο τρέχει το Everything και στην σελίδα που θα εμφανιστεί, θα μπορείτε να κάνετε αναζητήσεις αλλά και να κατεβάζετε τα αρχεία του. (Θα ήμασταν υποκριτές αν, σε αυτό το σημείο, αποφεύγαμε να πούμε ότι αυτό ακριβώς το feature του Everything σε συνδυασμό με το μικρό του μέγεθος και την portable μορφή του, μας έκανε να σκεφτούμε ότι μπορεί να αποτελέσει άριστο backdoor trojan, αφού το «πειράξουμε» λίγο ώστε να μην φαίνεται το εικονίδιό του στο system tray. We can’t help thinking black hat sometimes… ;-))

Resources

Θα υπέθετε κανείς ότι με όλες αυτές τις λειτουργίες, το Everything θα πρέπει να «βαραίνει» λίγο το σύστημα. Στην πραγματικότητα όμως είναι ιδιαίτερα ελαφρύ από όλες τις απόψεις (κατανάλωση αποθηκευτικού χώρου, μνήμης RAM και χρόνου επεξεργαστή).
Στο σύστημα της δοκιμής, το ευρετήριο για τα 328.000 καταχωρημένα ονόματα αρχείων κατέλαβε μόλις 2.2Mb αποθηκευτικού χώρου στον δίσκο μας. Όταν βρίσκεται ενεργό στην μνήμη, με το ευρετήριο φορτωμένο και τους δύο servers ενεργοποιημένους, ο Task Manager αναφέρει κατανάλωση μνήμης που δεν ξεπερνά τα 20Mb. Η δε χρήση CPU είναι αμελητέα.
Παρόλα αυτά, με σκοπό να μειωθούν ακόμα περισσότερο οι χρησιμοποιούμενοι πόροι, στην καρτέλα General των ρυθμίσεων θα βρείτε την επιλογή Unload database when inactive, η οποία έχει ως αποτέλεσμα να σταματά η παρακολούθηση του file system και να μην είναι φορτωμένο το ευρετήριο στη μνήμη, όσο το Everything είναι ανενεργό στο system tray.

Με λίγα λόγια το Everything τα κάνει όλα… και συμφέρει. Μάλιστα, όσοι κατέχετε από C μπορείτε να κατεβάσετε και το παρεχόμενο SDK για να φτιάξετε προγράμματα που βασίζονται στην γρήγορη μηχανή αναζήτησης του Everything, αν και θα ήταν ακόμα καλύτερα αν το ίδιο το πρόγραμμα ήταν open source και είχαμε πρόσβαση στον κώδικά του. Όπως και να ‘χει, το Everything είναι ένα πολύ δυνατό εργαλείο που δεν πρέπει να λείπει από την εργαλειοθήκη του Windows power user…

Locate32 – the next best thing…

Το κύριο παράθυρο του Locate32.Αν πρέπει οπωσδήποτε να έχετε FAT partitions στον υπολογιστή σας ή για οποιονδήποτε άλλο λόγο το Everything δεν σας καλύπτει, μπορείτε να δοκιμάσετε το Locate32, που είναι ένα αρκετά πιο δημοφιλές πρόγραμμα αντικατάστασης της κλασικής αναζήτησης αρχείων στα Windows και μιμείται λειτουργικά τα locate και updatedb των *nix.
Βέβαια, το Locate32 απαιτεί *σημαντικά* περισσότερο χρόνο για την διαδικασία του indexing ενώ δεν μπορεί να παρακολουθεί τις αλλαγές στο σύστημα σε πραγματικό χρόνο αλλά πρέπει να προγραμματίζεται ενημέρωση του ευρετηρίου ανά τακτά χρονικά διαστήματα. Επίσης δεν προσφέρει ούτε inline search, ούτε αναζήτηση με regex, ούτε τις δικτυακές ικανότητες του Everything.
Από την άλλη, όπως είπαμε το Locate32 δεν απαιτεί NTFS partitions, τα κριτήρια της αναζήτησής του μπορούν να βασίζονται πέρα από το όνομα αρχείου και στο μέγεθος και στην ημερομηνία, διαθέτει search presets, μπορεί να χρησιμοποιεί παράλληλα πολλά ευρετήρια, το GUI του είναι πολύ πιο παραμετροποιήσιμο, ενώ είναι εξίσου ελαφρύ όσο και το Everything.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων