Solr Vs.Сфинкс в проекте Ruby - PullRequest
       26

Solr Vs.Сфинкс в проекте Ruby

2 голосов
/ 01 сентября 2011

У меня есть проект, который пишется поверх платформы Grape API в ruby. (https://github.com/intridea/grape)

Проблема, с которой я столкнулся, состоит в том, что Thinking-Sphinx vs. Sunspot (самоцветы, используемые для взаимодействия с каждым поисковым индексом) имеют разные ориентиры. Просмотреть тест здесь

Мы пытаемся разработать что-то быстрое и простое в развертывании (Solr нужна Java).

Проблемы, с которыми мы сталкиваемся сейчас, в основном состоят в том, что Solr медленнее через гем Sunspot, а Sphinx быстрее через Thinking-Sphinx, потому что Solr - это вызовы HTTP REST, где Sphinx - сокеты.

Кто-нибудь имеет опыт в любом из них и может объяснить подводные камни / бонусы?

Примечание. Необходимо развертывать в приложениях Rails и non-rails (следовательно, Sunspot).

Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 сентября 2011

Sphinx проще в настройке и работе и обеспечивает большую гибкость, которую вы можете захотеть.

Solr более полнофункциональный и лучше масштабируется до больших данных, но может быть сложнее настроить и работать так, как вам хочется.

Мы много лет использовали Sphinx в PatientsLikeMe, и мне бы хотелось, чтобы мы изначально выбрали Solr. Я сожалею, что не имел более сложных вариантов взвешивания и сортировки. С другой стороны, Sphinx было намного проще в начальной настройке.

РЕДАКТИРОВАТЬ: мне еще больше повезло с ElasticSearch, который прост в настройке, хорошо масштабируется и обладает всеми функциями Solr. Я настоятельно рекомендую ElasticSearch поверх Sphinx или Solr для всех.

1 голос
/ 01 сентября 2011

Как отмечается в комментариях к этому посту, этот тест почти бесполезен.Он не только не упоминает параметры индекса и запросы, используемые в бенчмарке, но и только показывает скорость передачи, а не фактическую скорость поиска.

Обратите внимание, что я не говорю, что Solrбыстрее / лучше, чем Sphinx, я просто говорю, что никогда не буду использовать этот пост и этот тест для принятия решения о поисковой системе для моих приложений.

Кстати, это не имеет значениямного, но HTTP-интерфейс Solr совсем не является REST.

Кроме того, если вы действительно правильно сделаете свои тесты и определите, что вам абсолютно необходима максимальная производительность, а узким местом является сериализация XML (в реальном мире это почти никогдабывает), вы можете взглянуть на эту реализацию javabin в Ruby .

...