Pull to refresh

Comments 50

Протокол сильно поменялся (двоичный, я имею в виду)?
SphinxAPI почти не менялся — ну и он всегда обратно совместим, если что.
Я его реализую прямо поверх протокола. Делаю SphinxAPI для нужной платформы как раз. Поэтому бинарный протокол меня и интересует в первую очередь.
Куча новых слов, но интересно, спасибо!

Надо внести в список 3rd party APIs…
Я думал Вас об этом попросить когда коннектор будет чуть более отполирован. Но можно и сейчас, тем более что для общения со Sphinx он уже годится.
Пользуясь случаем хочу сказать что работал довольно много со Sphinx и SphinxApi и активно приходилось использовать мультизапросы AddQuery — т.е. делать несколько поисков в одном запросе (для добавления вывода количества совпадений по категориям товаров, по интервалам цен и т.д.).
Так вот, ОЧЕНЬ неудобно то, что весь API реализован в одном классе — такие функции как SetFilter, setGroupBy и прочие действуют «глобально». Т.е. создал я запрос, установил параметры ранкинга, группировки, сортировки, фильтрации по атрибутам, добавил запрос в addQuery и чтобы сделать следующий запрос приходится подчищать все параметры предыдущего запроса — делать кучу reset-ов. а это ну ооочень напрягает. Создавать для каждого запроса новый экземпляр SphinxClient накладно т.к. придется создавать отдельное подключение.

Мое пожелание — делать в API 2 класса — один для формирования запроса и второй для отправки запроса(ов) серверу и получения ответа. т.е. мы создаем несколько независимых экземпляров SphinxQuery, каждому выставляем свои SetFilter setGroupBy и пр. и скармливаем экземпляру SphinxServer, который и отсылает запросы на сервер и возвращает результаты.

Хотя, возможно, я просто не до конца разобрался?
> чтобы сделать следующий запрос приходится подчищать все параметры предыдущего запроса —

class MySphinxClient extends SphinxClient { function ResetAll() {… } } вроде пишется за 5 минут, если очень нужно!

> Мое пожелание — делать в API 2 класса —

Революций в API уже не будет, SphinxQL FTW.
Отличный девиз! :)
Спасибо вам за то, что вы делаете!
А на русском языке к нему нет документации?
Нет, вроде. Добровольцев видимо не нашлось, а у единственного разработчика и без этого хватает забот :-)
Ну, разработчиков побольше одного, но документацию переводить все равно возможностей нету.

Можем пробовать вычитывать и корректировать, как максимум.
Ааааа!!! Андрей!!!
Я ваш фанат, дайте автограф!!!1
Не вопрос.

(подписывает стандартный договор про консалтинг)

Кого вписывать в реквизиты с вашей стороны, куда отсылать для кросс-подписи, с кем утрясать SOW? :-)
А виндовая версия по-прежнему не рекомендуется для продакшена?
Ну, многопоточность теперь есть, можно пробовать всякое.
Это очень радует. Осталось дождаться пока проапдейтят .NET-клиент.
— Выключите свет! Они на свет лезут!!!
сфинкс «научился» выдавать прямое вхождение запроса выше остальных вариантов?
Ох, как кстати. Спасибо.
Ура! Свершилось! Я ждал этого дня несколько лет!
Андрей, я тут прочитал, что MySQL теперь вроде как и не обязателен. Т.е. если у меня куча xml-файлов, sphinx их может сам проиндескировать без предварительного разбора?

Можно какой-нибудь примерчик на эту тему? На сайте что-то не нашел.
Fedora 13.

[root@gf-home-server ~]# rpm -i sphinx-1.10-1.el5.x86_64.rpm
ошибка: Неудовлетворенные зависимости:
libcrypto.so.6()(64bit) нужен для sphinx-1.10-1.el5.x86_64
libexpat.so.0()(64bit) нужен для sphinx-1.10-1.el5.x86_64
libmysqlclient.so.15()(64bit) нужен для sphinx-1.10-1.el5.x86_64
libmysqlclient.so.15(libmysqlclient_15)(64bit) нужен для sphinx-1.10-1.el5.x86_64
libssl.so.6()(64bit) нужен для sphinx-1.10-1.el5.x86_64
Ага, ок.

Понаставим новых сборочных виртуалок при случае.
Уже давно использую real-time индексы.
Работает отлично.
Релиз беты — это как праздник для меня!
Также, строковых атрибутов очень не хватало.
Теперь нет необходимости держать в отдельной базе связь indexID с строковыми ID.
Например:
* строковые ключи mongoDB
* строковые ID документов dokuwiki

Сфинкс поиск стал намного удбней и девиз хороший!
Так держать Андрей!

Кстати, сортировка по строковым атрибутам будет работать? Например для сортировки по заголовкам тем форума, или лучше для этого использовать sql_attr_str2ordinal как раньше?
Пока не будет — еще не написали.

Ordinal, скажем прямо, не лучшее решение — делали в порядке затычки.
Пользуюсь pecl-клиентом для sphinx, но он не вытягивает строковые данные. Клиент еще не обновили, или я неправильно понял цель sql_field_string?
Надо ждать обновления PECL, ага; мы подновили libsphinxclient, однако PECL поддерживается не нами.

И, конечно, SphinxQL FTW.
Когда 1 сайт — настроил индекс и забыл.
А когда их 40 и одинаковая структура — тяжело для каждого настраивать

Может есть какие-нибудь способы, чтобы не нужно было каждый раз создавать конфиг для индекса?
Способо есть.
Создаешь скрипт, который по заданной схеме создает конфиг.
Или начинаешь конфиг со строчки #!/usr/bin/php

Или с любой другой #! строчки

:)
Где бы еще спросить… Спрошу здесь… Как можно подружить SphinxQL и NET приложения? Протоко mysql41 который используется в SphinxQL не поддерживается MySQL .NET/connector.
к сожалению, 1.10b так и не заработала с RT под Windows. При попытке добавить что-то в RT демон сразу же падает :(
Андрюха, я понял чем ты налошил: надо было делать не SphinxQL, а расширяемый XML язык, который бы ходил по SOAP-у в Corba транспорте. Тогда тебе проблема как шарить данные между соседними тредами показалась бы совершенно незначительной =)
так точно! причем все это на java

очень, очень полезно для энтерпрайзности и исключения неинтересных проблем перформанса («ну поставьте 1000 серверов для поиска по 10 GB данных»)

но не умею Eclipse-ом пользоваться, надо начинать!
Sign up to leave a comment.