Ответы пользователя по тегу Laravel
  • Как отсортировать данные по значению из присоединённой таблицы в sphinx search?

    Добрый день
    То что вы скинули это запрос с помощью, которого Sphinx получает данные для построения индекса, и не имеет значения был ли данные отсортированы или нет.
    Создавать атрибут для присоединённых таблиц можно(добавляется так же как и не для присоединённых таблиц)

    В описании source добавите строку:
    sql_attr_uint = subscriptionActive(или любой другой тип в зависимости от Ваших необходимостей)
    И при индексации укажите сфинксу что он должен положить в атрибут subscriptionActive:

    SELECT c.id, c.icof, c.firma, a.textadr, \
    r.textz, cc.value, cc.title, cai.description \
    ,s.active AS 'subscriptionActive'\
    FROM companies as c \
    LEFT JOIN addresses as a ON c.icof = a.icof \
    LEFT JOIN rosformaf r ON c.rosformaf = r.kodzaz \
    LEFT JOIN company_contacts as cc ON c.id = cc.company_id \
    LEFT JOIN company_add_info as cai ON c.id = cai.company_id \
    LEFT JOIN subscriptions as s ON c.id = s.company_id \
    ORDER BY s.active DESC


    Теперь когда Вы будете формировать запрос к сфинксу укажите ему, что нужно сортировать по атрибут subscriptionActive и счастье придёт=)

    А вообще в документации всё достаточно хорошо описано:
    sphinxsearch.com/docs/current.html#attributes
    Так же рекомендую к ознакомлению блог Игорья Чакрыгина:
    chakrygin.ru
    Ответ написан
    1 комментарий