django_sphinx_db

Screenshot Λογισμικό:
django_sphinx_db
Στοιχεία Λογισμικού:
Εκδοχή: 0.1-3
Ανεβάστε ημερομηνία: 20 Feb 15
Προγραμματιστής: Ben Timby
Άδεια: Δωρεάν
Δημοτικότητα: 0

Rating: 3.0/5 (Total Votes: 2)

django_sphinx_db είναι ένα απλό Django backend βάση δεδομένων που επιτρέπει την αλληλεπίδραση με Σφίγγα μέσω SphinxQL. Είναι ουσιαστικά η προεπιλεγμένη Django MySQL backend με κάποιες αλλαγές για Σφίγγα.
SphinxQL είναι ένας τρόπος κλώνος MySQL που υποστηρίζει Σφίγγα searchd. Σας επιτρέπει να αναζητήσετε ευρετήρια μέσω τακτικών παλιά σύνταξη SQL. Εάν χρησιμοποιείτε RT (σε πραγματικό χρόνο) ευρετήρια, μπορείτε επίσης να προσθέσετε και να επικαιροποιεί τα έγγραφα στο ευρετήριο.
Αυτό το backend είναι γραφτό να γίνει configued ως μια βάση δεδομένων στην settings.py Django.
Αυτό το πακέτο παρέχει μια κατηγορία Διευθυντής, SQLCompiler σουίτα και υποστήριξη κώδικα για να καταστεί αυτό δυνατό.
Χρήση
Πρώτα απ 'όλα, θα πρέπει να ορίσετε μια σύνδεση βάσης δεδομένων με τη διαμόρφωση του Django. Θα πρέπει επίσης να εγκαταστήσετε το δρομολογητή βάση δεδομένων Σφίγγα και προσθέστε django_sphinx_db στη λίστα σας INSTALLED_APPS.
# Εγκαταστήστε django_sphinx_db:
INSTALLED_APPS + = («django_sphinx_db»,)
# Αυτό είναι το όνομα του διακομιστή σφίγγα στις βάσεις δεδομένων:
SPHINX_DATABASE_NAME = «σφίγγα»
# Ορίστε την σύνδεση με Σφίγγα
ΒΑΣΕΙΣ = {
& Nbsp? "Default": {
& Nbsp? # Προεπιλεγμένη σύνδεση βάσης δεδομένων σας πηγαίνει εδώ ...
& Nbsp?},
& Nbsp? SPHINX_DATABASE_NAME: {
& Nbsp? «ΚΙΝΗΤΗΡΑΣ»: «django_sphinx_db.backend.sphinx»,
& Nbsp? # Το όνομα της βάσης δεδομένων δεν έχει σημασία.
& Nbsp? 'ΟΝΟΜΑ': '',
& Nbsp? # Δεν υπάρχει όνομα χρήστη ή τον κωδικό πρόσβασης.
& Nbsp? «Χρήστης»: '',
& Nbsp? 'Password': '',
& Nbsp? # Μην χρησιμοποιείτε localhost, αυτό θα έχει ως αποτέλεσμα τη χρήση ενός UDS αντί του TCP ...
& Nbsp? «Υποδοχής»: «127.0.0.1»,
& Nbsp? «ΛΙΜΑΝΙ»: «9306»,
& Nbsp?},
}
# ... Και τη διαδρομή ανάλογα ...
DATABASE_ROUTERS = (
& Nbsp? 'Django_sphinx_db.routers.SphinxRouter »,
) `` `
Στη συνέχεια, ορίζουν ένα μοντέλο που προέρχεται από την SphinxModel. Ως συνήθως, το μοντέλο θα πρέπει να τοποθετηθεί στο models.py.
από django_sphinx_db.backend.models εισαγωγή SphinxModel, SphinxField
κατηγορία MyIndex (SphinxModel):
& Nbsp? Τάξη Μέτα:
& Nbsp? # Αυτό το επόμενο κομμάτι είναι σημαντικό, δεν θέλετε Django να διαχειριστεί
& Nbsp? # Ο πίνακας για αυτό το μοντέλο.
& Nbsp? Διαχειρίζεται = False
& Nbsp? Name = SphinxField ()
& Nbsp? Περιεχόμενο = SphinxField ()
& Nbsp? Date = models.DateTimeField ()
& Nbsp? Size = models.IntegerField ()
Διαμόρφωση Σφίγγα
Τώρα θα πρέπει να δημιουργήσει ένα αρχείο ρυθμίσεων για το δείκτη σας. Μια εντολή διαχείριση προβλέπεται να μετατρέψει τον ορισμό μοντέλο σε μια κατάλληλη διαμόρφωση.
& Nbsp? Πύθωνα manage.py syncsphinx >> /etc/sphinx.conf
& Nbsp? Vi /etc/sphinx.conf
Το παραγόμενο αρχείο ρυθμίσεων θα πρέπει να είναι μια καλή αρχή, ωστόσο, θα καλούνται να επανεξετάσουν τη διαμόρφωση κατά την [Σφίγγα αναφορά διαμόρφωσης] (http://sphinxsearch.com/docs/2.0.2/confgroup-index.html).
Χρήση του Django ORM με Σφίγγα
Τώρα μπορείτε να αναζητήσετε και να διαχειριστείτε δείκτη σε πραγματικό χρόνο σας χρησιμοποιώντας το Django ORM. Μπορείτε να εισαγάγετε και να επικαιροποιεί τα έγγραφα στο ευρετήριο χρησιμοποιώντας τις ακόλουθες μεθόδους. Το παρακάτω παράδειγμα χρησιμοποιεί το [πλήρες βιβλιοθήκη] (https://github.com/btimby/fulltext) για να διαβάζει το περιεχόμενο του αρχείου ως απλό κείμενο.
os εισαγωγής, χρόνος, πλήρες κείμενο
# Προσθέστε ένα έγγραφο στο ευρετήριο.
path = "resume.doc»
st = os.stat (διαδρομή)
MyIndex.objects.create (
& Nbsp? Name = διαδρομή,
& Nbsp? Content = fulltext.get (μονοπάτι, ''),
& Nbsp? Size = st.st_size,
& Nbsp? Date = time.strftime ("% Υ-% m-% d% H:% M:% S», time.localtime (st.st_mtime)),
)
# Ενημέρωση έγγραφο στο ευρετήριο
doc = MyIndex.objects.get (PK = 1)
doc.content = fulltext.get (μονοπάτι, '')
doc.size = st.st_size
doc.date = time.strftime ("% Υ-% m-% d% H:% M:% S», time.localtime (st.st_mtime))
doc.save ()
Μπορείτε να εκτελέσετε ερωτήματα πλήρους κειμένου με τη χρήση του τελεστή αναζήτησης Django. Διαβάστε την τεκμηρίωση Django για περισσότερες πληροφορίες.
MyIndex.objects.filter (content__search = 'Foobar »)
Το ερώτημα περνά μέσα απ 'ευθείας στην Σφίγγα, έτσι ώστε να τηρείται η σύνταξη παρατείνεται ερώτημα Σφίγγα.
Μονάδα Δοκιμές
Το backend Σφίγγα για Django θα αγνοήσει create_test_db και destroy_test_db κλήσεις. Οι κλήσεις θα αποτύχει όταν η βάση δεδομένων Σφίγγα έχει ρυθμιστεί, σας εμποδίζει από το τεστ τρέξιμο. Ωστόσο, αυτό σημαίνει ότι οποιαδήποτε διαμορφωμένη βάση δεδομένων Σφίγγα θα χρησιμοποιηθεί κατά τη διάρκεια της δοκιμής. Όσο μπορείτε να γράψετε τις δοκιμές σας με αυτό κατά νου, θα πρέπει να υπάρχει κανένα πρόβλημα. . Να θυμάστε ότι μπορείτε να χρησιμοποιήσετε την παράμετρο σύνδεσης βάσης δεδομένων TEST_NAME διαβίβασης των ερωτημάτων σε μια διαφορετική σύνδεση της βάσης δεδομένων κατά τη διάρκεια δοκιμαστικές

Απαιτήσεις :

  • Python
  • Django

Σχόλια για django_sphinx_db

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!