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

org.eclipse.help.ui.searchEngine

3.1

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

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

Οι μηχανές αναζήτησης μπορούν απλά να συνθέσουν ένα URL και να παράσχουν μόνο μία επίσκεψη που περιέχει αυτό το URL ως href. Η προσθήκη των δημοφιλών μηχανών αναζήτησης για τα οποία η υποστήριξη API απαιτεί άδεια χρήσης γίνεται με τον τρόπο αυτό. Στην άλλη άκρη του φάσματος, οι μηχανές αναζήτησης μπορούν να επικοινωνήσουν με τον εξυπηρετητή και να λάβουν μεμονωμένες επισκέψεις με πληροφορίες όπως ετικέτα, href, σύντομη περιγραφή, βαθμολογία κλπ. Η τοπική μηχανή βοήθειας μπορεί να παράγει επισκέψεις με τον τρόπο αυτό.

Ανεξάρτητα από το μηχανισμό αναζήτησης, οι μηχανές μπορούν να παράσχουν διάφορες ρυθμίσεις εμβέλειας χρησιμοποιώντας τις σελίδες προτιμήσεων JFace. Οι σελίδες αυτές εμφανίζονται όταν η διασύνδεση "Ειδικές ρυθμίσεις" ακολουθείται από την προβολή "Βοήθεια". Επιπλέον των κεντρικών σελίδων προτιμήσεων που ορίζονται στη μηχανή, είναι δυνατή η προσθήκη πρόσθετων υποσελίδων προτιμήσεων για πιο προηγμένες ρυθμίσεις.

Οι ρυθμίσεις εμβέλειας φορτώνονται και αποθηκεύονται με τη χρήση των αντικειμένων IPreferenceStore. Οι ρυθμίσεις εμβέλειας για όλες τις μηχανές ομαδοποιούνται κάτω από ένα επώνυμο σύνολο εμβελειών. Κατά το πρώτο άνοιγμα, δημιουργείται το προεπιλεγμένο σύνολο εμβελειών ("Προεπιλεγμένο"), αλλά οι χρήστες μπορούν να καθορίσουν περισσότερα σύνολα εμβελειών με δυνατότητα εναλλαγής μεταξύ τους.

Εφόσον η υποστήριξη συλλογικής αναζήτησης είναι τμήμα της πρόσθετης λειτουργίας org.eclipse.help.base, χρειάζεται μια μέθοδος κατασκευής για τη δημιουργία αντικειμένων εμβέλειας αναζήτησης από τα δεδομένα στο χώρο αποθήκευσης προτιμήσεων. Απαιτείται από τους πελάτες που προσθέτουν σελίδες προτιμήσεων εμβέλειας να προσθέσουν ομοίως και μεθόδους κατασκευής εμβέλειας.

Οι μηχανές που ορίζονται στο σημείο επέκτασης δεν εμφανίζονται στο περιβάλλον χρήστη ως προεπιλογή. Αυτό που εμφανίζεται είναι μια υπαρκτή χρήση μιας μηχανής αναζήτησης που μπορεί να τροποποιηθεί μεμονωμένα. Τα προϊόντα μπορούν να προ-ρυθμίσουν το σύστημα βοήθειας με έναν αριθμό χρήσεων των καταχωρημένων ειδών μηχανών, πιθανόν παραμετροποιημένων για λειτουργία με τον επιθυμητό τρόπο. Επιπρόσθετα, οι χρήστες μπορούν να προσθέσουν τις δικές τους χρήσεις των καταχωρημένων μηχανών και να τις ρυθμίσουν ανάλογα με τις επιλογές τους.

<!ELEMENT extension (engineType* , engine*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT engineType (description? , subpage*)>

<!ATTLIST engineType

id           CDATA #REQUIRED

label        CDATA #REQUIRED

icon         CDATA #IMPLIED

class        CDATA #REQUIRED

pageClass    CDATA #IMPLIED

scopeFactory CDATA #IMPLIED>

καθορίζει ένα συγκεκριμένο είδος μηχανής αναζήτησης. Το είδος της μηχανής αναζήτησης μπορεί να χρησιμοποιηθεί για τη δημιουργία υπαρκτών χρήσεων της μηχανής αναζήτησης είτε από το χρήστη είτε εάν έχουν ήδη φορτωθεί από το προϊόν. Για να είναι χρήσιμα, τα είδη μηχανής αναζήτησης πρέπει να έχουν τη δυνατότητα ρύθμισης ώστε να μπορεί να δημιουργηθεί ένας αριθμός μηχανών χρησιμοποιώντας ένα μόνο είδος.



<!ELEMENT description (#PCDATA)>

μια σύντομη περιγραφή της μηχανής αναζήτησης



<!ELEMENT subpage EMPTY>

<!ATTLIST subpage

id       CDATA #REQUIRED

label    CDATA #REQUIRED

class    CDATA #IMPLIED

category CDATA #REQUIRED>

μια θυγατρική σελίδα στην κεντρική σελίδα προτίμησης εμβέλειας που καθορίζεται στο στοιχείο engine. Εάν δεν έχει καθοριστεί το γνώρισμα της μηχανής pageClass, οι υπο-σελίδες θα αγνοηθούν.



<!ELEMENT engine (description? , param*)>

<!ATTLIST engine

productId    CDATA #IMPLIED

engineTypeId CDATA #REQUIRED

enabled      (true | false)

label        CDATA #IMPLIED

id           CDATA #REQUIRED>

Καθορίζει μια υπαρκτή χρήση ενός συγκεκριμένου είδους μηχανής αναζήτησης. Η χρήση μπορεί να συνδέεται με το προϊόν ώστε να εμφανίζεται μόνο όταν το προϊόν αυτό είναι ενεργό. Η μηχανή αναζήτησης μπορεί να διαθέτει τη δική της ετικέτα και περιγραφή. Εάν δεν καθοριστεί, θα χρησιμοποιηθούν τα δεδομένα του είδους μηχανής. Τέλος, κάθε είδος μηχανής καθορίζει ένα έγκυρο σύνολο παραμέτρων που μπορεί να μεταβιβαστεί σε αυτό για να το ρυθμίσει. Οι μηχανές αναζήτησης μπορούν να καθορίσουν τις τιμές αυτών των παραμέτρων.



<!ELEMENT param EMPTY>

<!ATTLIST param

name  CDATA #REQUIRED

value CDATA #REQUIRED>

μια προαιρετική παράμετρος που χρησιμοποιείται για τη ρύθμιση αυτής της χρήσης ενός είδους μηχανής αναζήτησης. Οι έγκυρες παράμετροι καθορίζονται από το είδος της μηχανής.



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

   

<extension point=

"org.eclipse.help.ui.searchEngine"

>

<engineType scopeFactory=

"com.example.xyz.XYZScopeFactory"

label=

"XYZ Search"

class=

"com.example.xyz.search.XYZSearch"

icon=

"icons/etool16/xyzsearch.gif"

pageClass=

"com.example.xyz.search.XYZSearchPage"

id=

"com.example.xyz.XYZSearch"

>

<description>

Instances of XYZ Search search the XYZ site.

</description>

</engineType>

<engine enabled=

"true"

engineTypeId=

"com.example.xyz.search.XYZSearch"

id=

"com.example.xyz.XYZSearch"

label=

"XYZ Search"

>

</engine>

<engine enabled=

"true"

engineTypeId=

"org.eclipse.help.ui.web"

id=

"org.eclipse.sdk.Eclipse"

label=

"%search.Eclipse.label"

>

<description>

%search.Eclipse.desc

</description>

<param name=

"url"

value=

"http://eclipse.org/search/search.cgi?q={expression}&amp;ul=&amp;ps=20&amp;m=all"

>

</param>

</engine>

</extension>

Το γνώρισμα class του στοιχείου engineType πρέπει να παρέχει ένα πλήρες όνομα της κλάσης που υλοποιεί το org.eclipse.help.search.ISearchEngine. Το γνώρισμα pageClass πρέπει να παρέχει ένα πλήρες όνομα της κλάσης που επεκτείνει το org.eclipse.help.ui.RootScopePage. Το γνώρισμα scopeFactory πρέπει να παρέχει ένα πλήρες όνομα της κλάσης που υλοποιεί το org.eclipse.help.ui.ISearchScopeFactory. Το γνώρισμα class του στοιχείου subpage πρέπει να παρέχει ένα πλήρες όνομα μιας κλάσης που υλοποιεί το org.eclipse.help.ui.ISearchScopePage.

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

Τα προϊόντα μπορούν να δημιουργήσουν υπαρκτές χρήσεις του κέντρου πληροφοριών και των αναζητήσεων στο διαδίκτυο χρησιμοποιώντας τη δική τους ταυτότητα μηχανής και τις απαιτούμενες παραμέτρους.

Το είδος μηχανής αναζήτησης κέντρου πληροφοριών διαθέτει την ταυτότητα μηχανής org.eclipse.help.ui.infoCenter και δέχεται μία παράμετρο url που παραπέμπει στον απομακρυσμένο εξυπηρετητή, όπου έχει εγκατασταθεί το κέντρο πληροφοριών. Τα αποτελέσματα εμφανίζονται με τον ίδιο τρόπο όπως και τα αποτελέσματα τοπικής βοήθειας.

Το είδος μηχανής αναζήτησης στο διαδίκτυο έχει την ταυτότητα μηχανής org.eclipse.help.ui.web και δέχεται μία παράμετρο url που αντιπροσωπεύει ένα υπαρκτό ερώτημα αναζήτησης με την πραγματική σειρά χαρακτήρων αναζήτησης που αντικαθίσταται από ένα σύμβολο αντικατάστασης '{expression}', όπως στο ακόλουθο παράδειγμα:

http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=all

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