django_sphinx_db

Software screenshot:
django_sphinx_db
Software ətraflı:
Version: 0.1-3
Tarixi Upload: 20 Feb 15
Geliştirici: Ben Timby
Lisenziya: Pulsuz
Məşhurluq: 0

Rating: 3.0/5 (Total Votes: 2)

django_sphinx_db SphinxQL vasitəsilə Sphinx ilə qarşılıqlı imkan verir ki, sadə Django bazası backend edir. Bu, əsasən Sphinx üçün bəzi dəyişikliklər default Django MySQL backend edir.
SphinxQL Sphinx searchd dəstəkləyən MySQL klon növüdür. Bu müntəzəm köhnə SQL syntax vasitəsilə indeksləri sorğu imkan verir. Siz rt (real-time) indeksləri istifadə edirsinizsə, siz də əlavə və index yeniləmə sənədləri bilərsiniz.
Bu backend Django settings.py bir verilənlər bazası kimi configued üçün nəzərdə tutulmuşdur.
Bu paket bir Manager sinif SQLCompiler suite təmin və kodu dəstəkləyən bu mümkün etmək üçün.
istifadə
İlk növbədə, siz Django konfiqurasiya bir verilənlər bazası bağlantısı müəyyən etməlidir. Siz həmçinin Sphinx bazası router yüklemek və sizin INSTALLED_APPS siyahısına django_sphinx_db əlavə etməlidir.
# Django_sphinx_db bərpa edin:
INSTALLED_APPS + = (django_sphinx_db ")
# Bu bazaları ilə sfinks server adı:
SPHINX_DATABASE_NAME = 'sfinks "
# Sphinx keçid müəyyən
VERİTABANLARI = {
& Nbsp; 'default: {
& Nbsp; # Mənim cari verilənlər bazasına qoşulma burada gedir ...
& Nbsp;}
& Nbsp; SPHINX_DATABASE_NAME: {
& Nbsp; 'ENGINE: "django_sphinx_db.backend.sphinx"
& Nbsp; # bazası adı əhəmiyyətli deyil.
& Nbsp; 'ADI:' ',
& Nbsp; # istifadəçi adı və parol var.
& Nbsp; 'USER:' ',
& Nbsp; 'PASSWORD:' ',
& Nbsp; localhost istifadə etməyin # Bu əvəzinə TCP bir ÜDS istifadə səbəb olacaq ...
& Nbsp; "HOST": "127.0.0.1"
& Nbsp; 'PORT' '9306',
& Nbsp;}
}
# ... Və marşrut müvafiq ...
DATABASE_ROUTERS = (
& Nbsp; django_sphinx_db.routers.SphinxRouter,
) `` `
Sonra SphinxModel irəli gəlir bir model müəyyən edir. Həmişə olduğu kimi, model models.py yerləşdiriləcək.
django_sphinx_db.backend.models olan SphinxModel, SphinxField idxal
sinif MyIndex (SphinxModel):
& Nbsp; class Meta:
& Nbsp; Bu növbəti bit vacibdir #, siz Django idarə istəmirəm
& Nbsp; # Bu model üçün masa.
& Nbsp; = False idarə
& Nbsp; name = SphinxField ()
& Nbsp; content = SphinxField ()
& Nbsp; tarix = models.DateTimeField ()
& Nbsp; size = models.IntegerField ()
Sphinx Nizamlama
İndi indeksi üçün bir konfiqurasiya faylını yaratmaq lazımdır. Idarəetmə komanda uyğun konfiqurasiya model müəyyən çevirmək üçün nəzərdə tutulmuşdur.
& Nbsp; python manage.py syncsphinx >> /etc/sphinx.conf
& Nbsp; vi /etc/sphinx.conf
yaradılan konfiqurasiya faylını Lakin, [Sphinx konfiqurasiya istinad] qarşı konfiqurasiya nəzərdən çağırıb olunur yaxşı bir başlanğıc olmalıdır (http://sphinxsearch.com/docs/2.0.2/confgroup-index.html).
Sphinx ilə Django ORM istifadə
İndi sorğu və Django ORM istifadə edərək real vaxt index idarə edə bilərsiniz. Siz daxil edin və aşağıdakı üsullarla indeksi sənədləri təkmilləşdirə bilər. Məsələn aşağıda düz mətn kimi fayl məzmunu oxumaq üçün [fulltext kitabxana] (https://github.com/btimby/fulltext) istifadə edir.
idxal os, vaxt, fulltext
# Index bir sənəd əlavə edin.
yol = 'resume.doc'
st = os.stat (yol)
MyIndex.objects.create (
& Nbsp; name = yolu,
& Nbsp; content = fulltext.get (yol, '')
& Nbsp; size = st.st_size,
& Nbsp; tarix = time.strftime ('% Y% m-% d% H:% M:% S', time.localtime (st.st_mtime)),
)
# Indeksi bir sənəd Update
doc = MyIndex.objects.get (pk = 1)
doc.content = fulltext.get (yol, '')
doc.size = st.st_size
doc.date = time.strftime ('% Y% m-% d% H:% M:% S', time.localtime (st.st_mtime))
doc.save ()
Siz Django axtarış operator istifadə edərək tam mətn sorğu edə bilərsiniz. Daha ətraflı məlumat üçün Django sənədləri oxumaq.
MyIndex.objects.filter (content__search = 'Foobar)
sorğu Sphinx birbaşa keçir, belə ki, Sphinx uzadıla sorğu sintaksis hörmət.
Unit Test
Django üçün Sphinx backend create_test_db və destroy_test_db zənglər ignore edəcək. Sphinx bazası yapılandırılmış zaman bu zənglər çalışan testlər sizə qarşısının alınması, uğursuz olacaq. Ancaq bu, hər hansı bir konfiqurasiya Sphinx bazası sınağı zamanı istifadə olunacaq deməkdir. Kimi uzun siz bu düşüncə ilə test yazmaq kimi, heç bir problem olmalıdır. . Siz test çalışır zamanı müxtəlif verilənlər bazası əlaqədar sorğu yönlendirme TEST_NAME bazası qoşulma parametri istifadə edə bilərsiniz ki, unutmayın

tələblər

  • Python
  • Django

Şərh django_sphinx_db

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!