Джанго-сфинкс е слой, който функционира подобно на Django ORM прави изключение тя работи на върха на Сфинкса пълен текст на търсачката.
Обърнете внимание: Вие ще трябва да създадете свои собствени индекси Сфинкс и инсталиране на сфинкс на вашия сървър, за да използвате това приложение.
Там вече няма да освободи налични пакети. Моля, използвайте SVN с поръчката последната багажника версия, тъй като тя винаги трябва да бъде стабилна и ток.
<Силен>
Инсталиране:
За да инсталирате последната стабилна версия:
Sudo easy_install djangosphinx
За да инсталирате най-новата версия за развитие (обновява доста често):
SVN Checkout http://django-sphinx.googlecode.com/svn/trunk/ Джанго-сфинкс
CD Джанго-сфинкс
Sudo питон setup.py инсталиране
Забележка: Вие ще трябва да инсталирате sphinxapi.py пакета във вашия Python Path или да използвате някой от включените версии. За да използвате включения версия, вие трябва да посочва следното в своя settings.py файл:
# Sphinx 0.9.9
SPHINX_API_VERSION = 0x116
# Sphinx 0.9.8
SPHINX_API_VERSION = 0x113
# Sphinx 0.9.7
SPHINX_API_VERSION = 0x107
<Силен>
Начин на употреба:
По-долу е известно например ползване:
клас MyModel (models.Model):
& Nbsp; търсене = SphinxSearch () # избор: по подразбиране db_table
& Nbsp; # Ако вашият индекс име не съвпада MyModel._meta.db_table
& Nbsp; # Забележка: Можете да генерирате само автоматични конфигурации от ./manage.py скрипта
& Nbsp; # ако името ти индекс мачове.
& Nbsp; търсене = SphinxSearch ("index_name")
& Nbsp; # Или може би искаме да бъдем още .. специфична
& Nbsp; searchdelta = SphinxSearch (
& Nbsp; индекс = 'index_name delta_name ",
& Nbsp; тежести = {
& Nbsp; "Име": 100,
& Nbsp; "описание": 10,
& Nbsp; "тагове": 80,
& Nbsp;}
& Nbsp;)
queryset = MyModel.search.query ("заявка")
results1 = queryset.order_by ("@ тегло", "id", "my_attribute")
results2 = queryset.filter (my_attribute = 5)
results3 = queryset.filter (my_other_attribute = [5, 3,4])
results4 = queryset.exclude (my_attribute = 5) [0:10]
results5 = queryset.count ()
#, Както на 2.0 сега можете да получите достъп до атрибут, за да получите аргументи за тегло и други подобни
за резултат в results1:
& Nbsp; резултат печат, result._sphinx
# Можете да получите достъп подобен набор от мета данни за самия queryset (когато вече е бил нарязан или изпълнени по никакъв начин)
принт results1._sphinx
Някои допълнителни методи:
& Nbsp; * брой ()
& Nbsp; * допълнително () (Приет на queryset)
& Nbsp; * всички () (не прави нищо)
& Nbsp; * select_related () (Приет на queryset)
& Nbsp; * group_by (поле, поле, поле)
& Nbsp; * set_options (индекс = '', тежести = {}, тежести = [])
Слоят на Джанго-сфинкс също подкрепя някои основни заявки над множество индекси. За да използвате тази първо трябва да разберат правилата на Съюза. Вашите показатели трябва да съдържат точно същите области. Тези полета трябва да включват и селекция CONTENT_TYPE която трябва да бъде CONTENT_TYPE идентификатор, свързан с тази таблица (модел).
След това можете да направите нещо подобно:
SphinxSearch ("index1 index2 index3"). Заявка ("Hello")
Това ще върне списък на всички мачове, подредени по тегло, от всички индекси. Това изпълнява една SQL заявка на индекса с мачове в него, както ORM Django не поддържа SQL съюз
<силни> Изисквания :.
- Django
- Python
Коментари не е намерена