django-sphinx

Software screenshot:
django-sphinx
Dettagli del software:
Versione: 2.2.4
Data di caricamento: 11 May 15
Sviluppatore: David Cramer
Licenza: Libero
Popolarità: 1

Rating: nan/5 (Total Votes: 0)

django-sfinge è uno strato che funziona proprio come il Django ORM fa tranne che funziona in cima alla Sfinge motore di ricerca full-text.
Nota: è necessario creare i propri indici sfinge e installare sfinge sul server per utilizzare questa applicazione.
Non ci saranno più rilasciare pacchetti disponibili. Si prega di utilizzare SVN alla cassa l'ultima versione tronco, come dovrebbe sempre essere stabile e corrente.

Installare:

Per installare l'ultima versione stabile:
sudo easy_install djangosphinx
Per installare la versione di sviluppo più recente (aggiornato molto spesso):
svn checkout http://django-sphinx.googlecode.com/svn/trunk/ django-sfinge
cd django-sfinge
sudo python setup.py install
Nota: è necessario installare il pacchetto sphinxapi.py nel vostro percorso di Python o usare una delle versioni inclusi. Per utilizzare la versione inclusa, è necessario specificare quanto segue nel file settings.py:
# Sfinge 0.9.9
SPHINX_API_VERSION = 0x116
# Sfinge 0.9.8
SPHINX_API_VERSION = 0x113
# Sfinge 0.9.7
SPHINX_API_VERSION = 0x107

Utilizzo:

Di seguito qualche esempio di utilizzo:
MyModel classe (models.Model):
& Nbsp; search = SphinxSearch () # opzionali: default db_table
& Nbsp; # Se il nome di indice non corrisponde MyModel._meta.db_table
& Nbsp; # Nota: È possibile generare solo configurazioni automatiche dallo script ./manage.py
& Nbsp; # se il nome di indice corrisponde.
& Nbsp; search = SphinxSearch ('index_name')
& Nbsp; # O forse vogliamo essere più .. specifici
& Nbsp; searchdelta = SphinxSearch (
& Nbsp; index = 'delta_name index_name',
& Nbsp; pesi = {
& Nbsp; 'nome': 100,
& Nbsp; 'descrizione': 10,
& Nbsp; 'tag': 80,
& Nbsp;}
& Nbsp;)
queryset = MyModel.search.query ('query')
risultati1 = queryset.order_by ('@ peso', 'id', 'my_attribute')
risultati2 = queryset.filter (my_attribute = 5)
risultati3 = queryset.filter (my_other_attribute = [5, 3,4])
risultati dell'APTT4 = queryset.exclude (my_attribute 5 =) [00:10]
results5 = queryset.count ()
# Come di 2.0 è ora possibile accedere ad un attributo per ottenere gli argomenti di peso e simili
per un risultato in risultati1:
& Nbsp; risultato di stampa, result._sphinx
# È possibile anche accedere ad un simile insieme di metadati sul queryset sé (una volta che è stato tranciato o eseguita in alcun modo)
stampa results1._sphinx
Alcuni metodi aggiuntivi:
& Nbsp; * count ()
& Nbsp; * in più () (passato alla queryset)
& Nbsp; * tutti () (non fa niente)
& Nbsp; * select_related () (passato alla queryset)
& Nbsp; * group_by (campo, campo, campo)
& Nbsp; * set_options (index = '', peso = {}, pesi = [])
Lo strato django-sfinge supporta anche qualche interrogazione di base su più indici. Per usare questo è necessario innanzitutto capire le regole di una UNION. Gli indici devono contenere esattamente gli stessi campi. Questi campi devono includere anche una selezione content_type che dovrebbe essere l'id content_type associato a quel tavolo (modello).
È quindi possibile fare qualcosa del genere:
SphinxSearch ('index1 indice2 index3'). Query ('ciao')
Questo restituirà un elenco di tutte le partite, in ordine di peso, da tutti gli indici. Questo esegue una query SQL per indice con le partite in esso, come ORM di Django non supporta SQL UNION

Requisiti .

  • Django
  • Python

Altri software di sviluppo David Cramer

sentry-pivotal
sentry-pivotal

20 Feb 15

django-data-tools
django-data-tools

11 May 15

Sentry
Sentry

20 Feb 15

nose-quickunit
nose-quickunit

20 Feb 15

Commenti a django-sphinx

I commenti non trovato
Aggiungi commento
Accendere le immagini!