django_sphinx_db

Software captura de pantalla:
django_sphinx_db
Detalles de software:
Versión: 0.1-3
Fecha de carga: 20 Feb 15
Promotor: Ben Timby
Licencia: Libre
Popularidad: 0

Rating: 3.0/5 (Total Votes: 2)

django_sphinx_db es una sencilla base de datos backend Django que permite la interacción con Esfinge través SphinxQL. Es básicamente el defecto backend Django MySQL con algunos cambios para Esfinge.
SphinxQL es un modo de clonación MySQL que soporte Esfinge searchd. Se le permite consultar los índices a través de la sintaxis SQL de edad regular. Si está utilizando rt (en tiempo real) índices, también se puede añadir y actualizar los documentos en el índice.
Este backend está destinado a ser configued como una base de datos en el settings.py Django.
Este paquete proporciona una clase Manager, suite de SQLCompiler y apoyando código para hacer esto posible.
Uso
En primer lugar, hay que definir una conexión de base de datos en la configuración de Django. También debe instalar el router base de datos Esfinge y añadir django_sphinx_db a su lista INSTALLED_APPS.
# Instalar django_sphinx_db:
INSTALLED_APPS + = ('django_sphinx_db',)
# Este es el nombre del servidor de la Esfinge en bases de datos:
SPHINX_DATABASE_NAME = "esfinge"
# Definir la conexión a Esfinge
BASES DE DATOS = {
& Nbsp; "por defecto": {
& Nbsp; # Su conexión de base de datos por defecto va aquí ...
& Nbsp;},
& Nbsp; SPHINX_DATABASE_NAME: {
& Nbsp; "motor": 'django_sphinx_db.backend.sphinx',
& Nbsp; # El nombre de base de datos, no importa.
& Nbsp; "nombre": '',
& Nbsp; # No hay nombre de usuario o contraseña.
& Nbsp; 'USUARIO': '',
& Nbsp; 'CONTRASEÑA': '',
& Nbsp; # No utilice localhost, esto se traducirá en el uso de una UDS en lugar de TCP ...
& Nbsp; "HOST ':' 127.0.0.1 ',
& Nbsp; "puerto": '9306',
& Nbsp;},
}
# ... Y la ruta en consecuencia ...
DATABASE_ROUTERS = (
& Nbsp; "django_sphinx_db.routers.SphinxRouter ',
) `` `
A continuación, defina un modelo que deriva del SphinxModel. Como de costumbre, el modelo será colocado en models.py.
desde django_sphinx_db.backend.models importar SphinxModel, SphinxField
MyIndex clase (SphinxModel):
& Nbsp; la clase Meta:
& Nbsp; # Esta siguiente bit es importante, usted no quiere Django para gestionar
& Nbsp; # la mesa para este modelo.
& Nbsp; logró = False
& Nbsp; name = SphinxField ()
& Nbsp; content = SphinxField ()
& Nbsp; date = models.DateTimeField ()
& Nbsp; size = models.IntegerField ()
Configuración esfinge
Ahora lo que necesita para generar un archivo de configuración para el índice. Un comando de gestión se proporciona para convertir la definición del modelo a una configuración adecuada.
& Nbsp; syncsphinx python manage.py >> /etc/sphinx.conf
& Nbsp; vi /etc/sphinx.conf
El archivo de configuración generado debe ser un buen comienzo, sin embargo, se le instó a revisar la configuración contra la [referencia Esfinge configuración] (http://sphinxsearch.com/docs/2.0.2/confgroup-index.html).
Uso de la ORM de Django con la esfinge
Ahora puede consultar y gestionar su índice en tiempo real utilizando el ORM de Django. Puede insertar y actualizar los documentos en el índice utilizando los siguientes métodos. El ejemplo siguiente utiliza el [Biblioteca texto completo] (https://github.com/btimby/fulltext) para leer el contenido del archivo como texto sin formato.
os de importación, el tiempo, el texto completo
# Añadir un documento al índice.
path = 'RESUME.DOC'
st = os.stat (ruta)
MyIndex.objects.create (
& Nbsp; name = camino,
& Nbsp; content = fulltext.get (path, ''),
& Nbsp; size = st.st_size,
& Nbsp; date = time.strftime ('% Y-% m-% d% H:% M:% S', time.localtime (st.st_mtime)),
)
# Actualización de un documento en el índice
doc = MyIndex.objects.get (pk = 1)
doc.content = fulltext.get (path, '')
doc.size = st.st_size
doc.date = time.strftime ('% Y-% m-% d% H:% M:% S', time.localtime (st.st_mtime))
doc.save ()
Puede realizar consultas de texto utilizando el operador de búsqueda de Django. Lea la documentación de Django para más información.
MyIndex.objects.filter (content__search = 'parametro')
La consulta se pasa directamente a través de la Esfinge, así que se respeta la sintaxis de consulta ampliado Esfinge.
Unidad de Pruebas
El backend Esfinge por Django ignorará create_test_db y destroy_test_db llamadas. Estas llamadas se producirá un error cuando se configura la base de datos Esfinge, evitando que las pruebas de funcionamiento. Sin embargo, esto significa que cualquier base de datos Esfinge configurado será utilizado durante la prueba. Mientras usted escribe sus pruebas con esto en mente, no debería haber ningún problema. . Recuerde que puede utilizar el parámetro de conexión de base de datos nombreDePrueba para redirigir las consultas a una conexión de base de datos diferente durante los recorridos de prueba

Requisitos :

  • Python
  • Django

Comentarios a la django_sphinx_db

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!