ФорумПрограммированиеPythonDjango → Чем пользуетесь для SphinxSearch или вообще для full-text в Django проектах?

Чем пользуетесь для SphinxSearch или вообще для full-text в Django проектах?

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 22 июня 2012 г. 16:11

    https://github.com/dcramer/django-sphinx кромешный ужас и мёртвый проект


    1) документация скудная и лживая:

    from djangosphinx.models import SphinxSearch
    SphinxSearch('index1 index2 index3').query('hello')

    надо

    from djangosphinx.models import SphinxQuerySet
    SphinxQuerySet('index1 index2 index3').query('hello')

    также всякие недочеты типа не указано что надо его класть в INSTALLED_APPS

    2) Нельзя указать limit, точнее я это пофиксил, но не суть совсем, ибо автор забил на проект и не принимает pull-request. Да к тому же там этим фиксом не обойтись, там надо все переписывать

    3) Нельзя указать нужные fields, в поисковый индекс уходят все поля таблицы
    4) Нельзя указать кастомный QuerySet в качестве данных для Sphinx
    5) Шаблоны генерируются криво (форматирование убогое и не используется наследование)
    6) Генерируется шаблон с indexer/search директивами, это плохо когда юзаешь she-bang (http://adw0rd.ru/2009/sphinx-include/)

    Да и вообще, псевдо-QuerySet ужасен, с ним особо ничего не сделать, опятьтаки если есть уже queryset, то нельзя добавить туда поиска
    Спустя 63 сек.
    http://habrahabr.ru/post/136261/

    * цепочечные методы не генерируют новые инстансы поискового запроса (пример далее)
    * несколько досадных открытых багов в оригинальном пакете django-sphinx (например, exception при использовании метода exclude), хотя они исправлены в нашем форке
    * совсем нет тестов, скудная документация
    * пакет не поддерживается и больше не развивается своим автором
    Спустя 158 сек.
    N) Нельзя указать в качестве индекса не свои модели, например для django.contrib.comments, приходится это обходить - не красиво
    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 июня 2012 г. 17:36, спустя 2 дня 1 час 24 минуты

    Накидал свой велосипед
    https://github.com/adw0rd/django-sphinxsearch
    Спустя 26 сек.
    Скоро перенесу туда генерирование конфига и тесты, они есть, но не закончены
    Спустя 61 сек.
    Реализовал там свою идею, теперь кверисет не портится вообще, он нативен для django
    adw/0
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 25 июня 2012 г. 10:02, спустя 16 часов 26 минут 4 секунды

    Так чего делать надо? Ты ещё не всё написал?

    Я таким занимался года четыре назад. Тоже делал нативный кверисет. А потом, в какой-то момент устал, и делал под эмуляцию mysql. Только видимо он до сих пор об апострофы вокруг полей спотыкается. Я одно время остановился на тупом решении - в сгенерированном sql выдергивал апострофы. Но сейчас проще сделать свой бекенда от mysql отнаследованный, ну а ещё проще по АПИ, конечно.

    Я глянул - ты точно думаешь, что надо суперстарые версии АПИ поддерживать и ставить их версии в сеттингах в шестнацетеричной системе?
    А так, готов помочь.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 25 июня 2012 г. 11:27, спустя 1 час 25 минут 14 секунд

    Я глянул - ты точно думаешь, что надо суперстарые версии АПИ поддерживать и ставить их версии в сеттингах в шестнацетеричной системе?

    да я просто дернул эту часть у django-sphinx, вообще я следую правилу - что нравится оставляю как у django-sphinx, остально дорабатываю или делаю заново)
    присоединяйся, форкни или тебя добавить как контрибьютера (вроде раньше такое было можно делать на гитхабе)?
    Спустя 168 сек.
    Так чего делать надо? Ты ещё не всё написал?

    1) надо еще генератор конфига перенести и допилить до ума, могу по нему issues составить
    2) тесты дописать
    3) проинтегрировать для postgresql, я даже не пробовал с ней еще использовать
    4) хочу в менеджер добавить filter/exclude(field__search), чтобы поиск был удобнее
    Спустя 171 сек.
    их версии в сеттингах в шестнацетеричной системе

    это треш, но
    1) у многих в settings уже так настроено и хочется быть к ним лояльным
    2) shodan выпускает с такими названиями версии, они рпигодны для большого набора searchd, думаю надо просто сделать маппер
    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!