Блог Толика Вострякова

Живой опыт программирования, Python, Django, современные языки и немного фотографий
Блог - новые записи и ссылки (Atom)

Django-sphinx. Продолжение про Sphinx 1.1 + Django + Postrgresql -

Fork of django-sphinx

В процессе работы над проектом (см. мой предыдущий пост для введения в тему) с использованием приложения django-sphinx, последний пришлось доработать до наших потребностей. Представляю мой fork от django-sphinx, в котором появились следующие возможности:

Интересные дополнительные возможности Sphinx

  1. Можно группировать по MVA атрибутам (см. предыдущий пост), то есть такой код вполне работает: Tag.search.group_by('types', SPH_GROUPBY_ATTR)
  2. Можно подсчитывать кол-во уникальных значений по какому-то атрибуту внутри группы: Tag.search.group_by('types', SPH_GROUPBY_ATTR).group_distinct('status')
  3. Интересные возможости по формированию строки поиска в расширенном режиме. Можно писать так: Tag.search.query('(белая кошка) | собака | ёжик').\
    set_options(mode='SPH_MATCH_EXTENDED2', rankmode="SPH_RANK_BM25", sort='SPH_SORT_RELEVANCE')
  4. По умолчанию Sphinx ищет по словам целиком с учетом морфологии указанного языка (русский, английский и т.д.). Но можно указать искать по вхождениям строк так: Tag.search.query('соба*'). Чтобы это заработало в sphinx.conf в разделе index application_tag нужно прописать следующие строки (начинать поиск начиная с 3 символов):
    enable_star     = 1
    min_prefix_len  = 0
    min_infix_len   = 3

Комментарии: 0

Добавить комментарий:


Буду использовать, только для связи с тобой

Чтобы и другие могли узнать о тебе

Вы можете использовать markdown разметку.

Например:
**жирный**
*курсив*
## Заголовок

Не используйте html-тэги. Все ссылки станут активными, все переводы строк будут заменены на <br>
captcha