django_sphinx_db

Software kuvakaappaus:
django_sphinx_db
Ohjelmiston tiedot:
Versio: 0.1-3
Lähetyksen päivämäärä: 20 Feb 15
Kehittäjä: Ben Timby
Lupa: Vapaa
Suosio: 10

Rating: 3.0/5 (Total Votes: 2)

django_sphinx_db on yksinkertainen Django tietokanta backend jonka avulla vuorovaikutusta sfinksi kautta SphinxQL. Se on periaatteessa oletuksena Django MySQL joitakin muutoksia sfinksi.
SphinxQL on MySQL kloonitila että sfinksi searchd tukee. Sen avulla voit kysellä indeksien kautta säännöllisesti vanhan SQL-syntaksi. Jos käytät rt (reaaliaikainen) indeksit, voit myös lisätä ja päivittää asiakirjoja indeksiin.
Tämän taustajärjestelmän on tarkoitettu configued kuin tietokanta Django settings.py.
Tämä paketti sisältää Manager luokka, SQLCompiler sviitti ja tukemalla koodia jotta tämä olisi mahdollista.
Käyttö
Ensinnäkin, sinun täytyy määritellä tietokannan yhteyden Django kokoonpano. Sinun täytyy myös asentaa sfinksi tietokanta reititin ja lisätä django_sphinx_db sinun INSTALLED_APPS luetteloon.
# Asenna django_sphinx_db:
INSTALLED_APPS + = ('django_sphinx_db',)
# Tämä on nimi sfinksi palvelimen tietokantoihin:
SPHINX_DATABASE_NAME = "sfinksi"
# Määrittele yhteyden Sphinx
TIETOKANNAT = {
& Nbsp; "default": {
& Nbsp; # Oletustarjoustasi Tietokannan menee täällä ...
& Nbsp;}
& Nbsp; SPHINX_DATABASE_NAME: {
& Nbsp; "moottorin" django_sphinx_db.backend.sphinx ",
& Nbsp; # Tietokannan nimi ei ole väliä.
& Nbsp; NAME: '',
& Nbsp; # Ei ole käyttäjätunnusta ja salasanaa.
& Nbsp; USER: '',
& Nbsp; "SALASANA": "",
& Nbsp; # Älä käytä localhost, tämä johtaa käyttäen UDS sijaan TCP ...
& Nbsp; HOST: "127.0.0.1",
& Nbsp; "portti": "9306",
& Nbsp;}
}
# ... Ja reitti sen mukaisesti ...
DATABASE_ROUTERS = (
& Nbsp; "django_sphinx_db.routers.SphinxRouter",
) `` `
Sitten määritellä malli, joka pohjautuu SphinxModel. Kuten tavallista, malli sijoitetaan models.py.
alkaen django_sphinx_db.backend.models tuoda SphinxModel, SphinxField
luokan MyIndex (SphinxModel):
& Nbsp; luokka Meta:
& Nbsp; # Tämä seuraava bitti on tärkeää, et halua Django hallita
& Nbsp; # taulukko tämän mallin.
& Nbsp; onnistui = False
& Nbsp; name = SphinxField ()
& Nbsp; content = SphinxField ()
& Nbsp; date = models.DateTimeField ()
& Nbsp; size = models.IntegerField ()
määrittäminen sfinksi
Nyt sinun täytyy luoda asetustiedosto oman indeksin. Hallintakomento tarjotaan muuntaa mallin määritelmä sopiva kokoonpano.
& Nbsp; python manage.py syncsphinx >> /etc/sphinx.conf
& Nbsp; vi /etc/sphinx.conf
Luotu config tiedoston pitäisi olla hyvä alku kuitenkin, olet kehotetaan tarkistamaan kokoonpanon vastaan ​​[sfinksi kokoonpano viite] (http://sphinxsearch.com/docs/2.0.2/confgroup-index.html).
käyttäminen Django ORM Sphinx
Voit nyt kysellä ja hallita reaaliaikaisesti indeksin avulla Django ORM. Voit lisätä ja päivittää asiakirjoja indeksiin käyttäen seuraavia menetelmiä. Alla olevassa esimerkissä käytetään [fulltext kirjasto] (https://github.com/btimby/fulltext) lukemiseksi tiedoston sisältö tekstimuodossa.
tuonti os, aika, fulltext
# Lisää asiakirjan indeksiin.
polku = 'resume.doc'
st = os.stat (polku)
MyIndex.objects.create (
& Nbsp; name = polku,
& Nbsp; content = fulltext.get (polku, ''),
& Nbsp; size = st.st_size,
& Nbsp; date = time.strftime ('% Y-% m-% d% H:% M:% S ", time.localtime (st.st_mtime)),
)
# Päivitä asiakirja indeksi
doc = MyIndex.objects.get (pk = 1)
doc.content = fulltext.get (polku, '')
doc.size = st.st_size
doc.date = time.strftime ('% Y-% m-% d% H:% M:% S ", time.localtime (st.st_mtime))
doc.save ()
Voit suorittaa koko tekstin kyselyjä Django hakuoperaattori. Lue Django dokumentaatiosta lisätietoja.
MyIndex.objects.filter (content__search = 'Foobar')
Kysely johdetaan suoraan Sphinx, joten sfinksi laajennettu kyselyn syntaksi kunnioitetaan.
Unit Testing
Sfinksi backend Django sivuuttaa create_test_db ja destroy_test_db puhelut. Nämä puhelut epäonnistuvat kun sfinksi tietokanta on määritetty, estää sinua käynnissä testejä. Kuitenkin, tämä tarkoittaa, että määritetty sfinksi tietokantaa käytetään testauksen aikana. Niin kauan kuin kirjoitat testit tässä mielessä, ei pitäisi olla mitään ongelmaa. Muista, että voit käyttää TEST_NAME tietokantayhteyttä parametri ohjata kyselyjä eri tietokantayhteyttä koeajoja.

Vaatimukset :

  • Python
  • Django

Kommentit django_sphinx_db

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!