django_sphinx_db

Софтуер снимки:
django_sphinx_db
Софтуер детайли:
Версия: 0.1-3
Дата на качване: 20 Feb 15
Розробник: Ben Timby
Разрешително: Безплатно
Популярност: 0

Rating: 3.0/5 (Total Votes: 2)

django_sphinx_db е проста Django бекенд база данни, която позволява взаимодействие с Сфинкс чрез SphinxQL. Тя е основно подразбиране Django MySQL бекенд на с някои промени, за Сфинкса.
SphinxQL е клонинг режим MySQL, че Сфинкса searchd подкрепя. Тя ви дава възможност да задава въпроси индекси чрез редовен стари SQL синтаксис. Ако използвате ЛТ (в реално време), индекси, можете също да добавя и актуализира документи в индекса.
Този бекенд е писано да бъде configued като база данни в settings.py Django.
Този пакет осигурява клас на мениджъра, SQLCompiler апартамент и подкрепа код, за да стане това възможно.
<Силен> Usage
На първо място, трябва да зададете на свързване на база данни в конфигурацията Django. Можете също така трябва да инсталирате базата данни рутера на Сфинкса и добавете django_sphinx_db към вашия списък INSTALLED_APPS.
# Инсталирайте django_sphinx_db:
INSTALLED_APPS + = ("django_sphinx_db")
# Това е името на сървъра сфинкс в Базите:
SPHINX_DATABASE_NAME = "Сфинкс"
# Дефиниране на връзката към Сфинкса
БАЗА ДАННИ = {
& Nbsp; "неизпълнение": {
& Nbsp; # Вашият свързване на база данни по подразбиране отива тук ...
& Nbsp;},
& Nbsp; SPHINX_DATABASE_NAME: {
& Nbsp; "двигател": "django_sphinx_db.backend.sphinx",
& Nbsp; # Името на базата данни не е от значение.
& Nbsp; "NAME": '',
& Nbsp; # Не е потребителско име или парола.
& Nbsp; "потребител": '',
& Nbsp; "ПАРОЛА": '',
& Nbsp; # Не използвайте Localhost, това ще доведе до използване на UDS вместо TCP ...
& Nbsp; "HOST": "127.0.0.1",
& Nbsp; "пристанище": "9306",
& Nbsp;},
}
# ... И маршрут съответно ...
DATABASE_ROUTERS = (
& Nbsp; "django_sphinx_db.routers.SphinxRouter",
) `` `
След това определи образец, че произлиза от SphinxModel. Както обикновено, моделът ще бъде пуснат в models.py.
от django_sphinx_db.backend.models внасят SphinxModel, SphinxField
клас MyIndex (SphinxModel):
& Nbsp; клас Meta:
& Nbsp; # Тази следващия бит е от значение, не искам Django да управлява
& Nbsp; # таблицата за този модел.
& Nbsp; успя = False
& Nbsp; име = SphinxField ()
& Nbsp; съдържание = SphinxField ()
& Nbsp; дата = models.DateTimeField ()
& Nbsp; размер = models.IntegerField ()
<Силен> Конфигуриране на Сфинкса
Сега те трябва да генерират конфигурационен файл за вашия индекс. Команда за управление за да се превърне определението на модел на подходяща конфигурация.
& Nbsp; питон manage.py syncsphinx >> /etc/sphinx.conf
& Nbsp; VI /etc/sphinx.conf
Генерираният конфигурационния файл трябва да бъде един добър старт обаче, вие сте призовани да преразгледат конфигурацията срещу [Сфинкс позоваването конфигурация] (http://sphinxsearch.com/docs/2.0.2/confgroup-index.html).
<Силен> Използване на Django ORM с Сфинкс
Сега можете да задава въпроси и да управлявате вашия индекс в реално време с помощта на Django ORM. Можете да поставите и актуализира документи в индекса се използват следните методи. Примерът по-долу използва [пълен текст библиотеката] (https://github.com/btimby/fulltext) за четене на съдържанието на файла като обикновен текст.
OS внос, време, на пълен текст
# Добавете документ към индекса.
път = "resume.doc"
ул = os.stat (път)
MyIndex.objects.create (
& Nbsp; име = пътека,
& Nbsp; съдържание = fulltext.get (пътека, ''),
& Nbsp; размер = st.st_size,
& Nbsp; дата = time.strftime ("% Y-% m-% г% H:% M:% S", time.localtime (st.st_mtime)),
)
# Актуализиране на документ в индекса
док = MyIndex.objects.get (PK = 1)
doc.content = fulltext.get (пътека, '')
doc.size = st.st_size
doc.date = time.strftime ("% Y-% m-% г% H:% M:% S", time.localtime (st.st_mtime))
doc.save ()
Можете да направите пълен текст заявки посредством оператора за търсене Django. Прочетете документацията Django за повече информация.
MyIndex.objects.filter (content__search = "Foobar")
Заявката се подава чрез директно към Сфинкса, така удължава заявка синтаксис на Сфинкса е спазен.
<Силен> единица тестване
Сфинксът гръб за Django ще игнорира create_test_db и destroy_test_db разговори. Тези разговори ще се провалят, когато базата данни Сфинкс е конфигурирана, което пречи да изпълняват тестове. Все пак, това означава, че всеки конфигуриран база данни Сфинкс ще бъде използвана по време на изпитването. Стига да напишете вашите тестове с оглед на това, не трябва да има проблем. . Не забравяйте, че можете да използвате параметъра TEST_NAME свързване на базата данни, за да пренасочи запитвания към друга база данни връзка по време на тестовите писти

<силни> Изисквания :

    <Ли > Python
  • Django

Коментари към django_sphinx_db

Коментари не е намерена
добавите коментар
Включете на изображения!