django_spinx_db.

Django-Datenbank-Backend für sphinxql
Jetzt downloaden

django_spinx_db. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • GPL v3
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Ben Timby
  • Website des Verlags:
  • http://code.google.com/u/btimby@gmail.com/

django_spinx_db. Stichworte


django_spinx_db. Beschreibung

DJANGO_SPHINX_DB ist ein einfaches Django-Datenbank-Backend, das die Interaktion mit SPHINX über sphinxql ermöglicht. Grundsätzlich ist das Standard-Django MySQL-Backend mit einigen Änderungen für sphinx.sphinxql ein MySQL-Klonmodus, der Sphinx-Search unterstützt. Sie können Indizes über eine reguläre alte SQL-Syntax abfragen. Wenn Sie RT (Echtzeit-) Indizes verwenden, können Sie auch Dokumente im Index hinzufügen und aktualisieren. Das Backend soll als Datenbank in der Django Setting.py.py.py.Dieses Paket konfiguriert werden. Unterstützender Code Um dies möglich zu machen.Umagefirst von allen, müssen Sie eine Datenbankverbindung in der Django-Konfiguration definieren. Sie müssen auch den Sphinx-Datenbank-Router installieren und django_spinx_db in der Liste installiert_Apps hinzufügen. # Installieren von django_spinx_db: installig_apps + = ('django_spinx_db',) # Dies ist der Name des Sphinx-Servers in Datenbanken: sphinx_database_name = 'sphinx' # definieren die Verbindung zu sphinxdatabasen = {'default': {# Ihre Standarddatenbankverbindung geht hier ...}, sphinx_database_name: {'Engine': 'django_sphinx_db.backend.sphinx', # Der Datenbankname spielt keine Rolle. 'Name': '', # Es gibt keinen Benutzernamen oder kein Passwort. 'Benutzer': '' ',' Password ':' ', # Nicht verwendet LocalHost, dies wird dazu führen, dass ein UDS anstelle von TCP ...' Host ':' 127.0.0.1 ',' Port ':' 9306 ',},} # ... und Route entsprechend ... database_routers = (' django_spinx_db.routers.sphinxrouter ',) `` `` `` `` `` `` `` `` `` ` Wie üblich wird das Modell in Models aufgestellt dieses Model. Managed = FALSE NAME = SPHINXFIELD () Content = SPHINXFIELD () DATE = MODE.DATETIMEField () Größe = Modelle.INDEGERFIELD () Die Konfiguration von SphinxNow Sie müssen eine Konfigurationsdatei für Ihren Index generieren. Es wird ein Verwaltungsbefehl bereitgestellt, um die Modelldefinition in eine geeignete Konfiguration umzuwandeln. Python Manage.py syncsspinx >> /etc/sphinx.conf VI /etc/sphinx.confthe generierte Konfigurationsdatei sollte ein guter Start sein. Sie werden jedoch aufgefordert, die Konfiguration mit der zu überprüfen (http: // sphinxsearch) .com / docs / 2.0.2 / confgroup-index.html) kann die Django ORM mit SphinxYou .Using jetzt Abfrage und Ihren Echtzeit-Index mit dem Django ORM verwalten. Sie können Dokumente mit den folgenden Methoden in den Index einfügen und aktualisieren. Das nachstehende Beispiel verwendet die (https://github.com/btimby/fullText) zum Lesen von Dateiinhalten als einfach text.import os, zeit, fulltext # Fügen Sie dem Index.Path = 'Resume.doc ein Dokument hinzu. 'ST = OS.Stat (Pfad) myIndex.objects.create (Name = Pfad, Inhalt = Volltext.get (Pfad,' '), Größe = st.st_size, date = time.stime ('% y-% m- % d% H:% m:% s ', Time.LokalTime (ST.ST_MTIME)),) # Aktualisieren eines Dokuments im IndexDoc = myINDEX.Objects.get (pk = 1) doc.content = fulltext.get (Pfad , ') doc.size = st.st_sizecisizec.date = Time.StrfTime ('% y-% m-% d% H:% m:% s ', Time.LocalTime (ST.ST_MTIME)) doc.Save ( ) Sie können Volltextabfragen mit dem Django-Suchbetreiber ausführen. Lesen Sie die Django-Dokumentation für weitere Informationen.MyINDEX.Objects.Filter (Content__Search = 'Foobars') Die Abfrage wird direkt an Sphinx übergeben, sodass die SPHINX Extended Query-Syntax angesehen werden . Diese Anrufe fehlschlagen, wenn die Sphinx-Datenbank konfiguriert ist, und verhindern Sie, dass Sie von Laufenstests verhindern. Dies bedeutet jedoch, dass während des Tests jede konfigurierte Sphinx-Datenbank verwendet wird. Solange Sie Ihre Tests mit diesem Hintergrund schreiben, sollte es kein Problem geben. Denken Sie daran, dass Sie den Parameter TEST_NAME-Datenbankverbindung verwenden können, um Abfragen auf eine andere Datenbankverbindung während der Homepage von Test Runs.Product umzuleiten.


django_spinx_db. Zugehörige Software