Heroku Rails Websolr, солнечное пятно не бесплатно в производстве?
Я добавил в свое приложение gem-пакет sunspot и попытался отправить его в производство на heroku, но я пытаюсь переиндексировать свою базу данных, однако получаю ошибку. Я еще немного покопался и думаю, что мне нужно добавить websolr в качестве дополнения? Это стоит 20 долларов в месяц. Это единственный вариант?
Спасибо
4 ответа
Основатель Websolr + Bonsai здесь (дополнения Heroku для Solr и Elasticsearch).
Ответ Рича довольно твердый, за исключением оператора SQL LIKE, который я не рекомендую. Производительность не масштабируется, и вы либо потратите гораздо больше времени, чем ожидаете, чтобы воспользоваться базовыми функциями поиска. Конечный результат: много времени и недовольных пользователей.
Полнотекстовый поиск Postgres является разумной альтернативой, хотя по сравнению с Solr/Elasticsearch поиск по термину и ранжирование результатов будут отсутствовать, так как ваш поисковый трафик начинает расти.
Вы можете также рассмотреть вопрос о нашей сестринской службе Bonsai, которая предлагает бесплатный стартовый план. Он использует Elasticsearch, что означает, что вы хотите использовать официальные привязки Ruby для Elasticsearch, а не Sunspot.
Наконец, если у вас уже есть производственное приложение на Heroku, вы можете создать более одного индекса в своей учетной записи и поделиться этими индексами со своей промежуточной /qa и другими приложениями.
Я провел еще несколько исследований и выяснил, что есть и другие варианты, если вы не хотите идти по пути веб-сайта. Эти другие ответы хороши для некоторых идей, но не дают альтернативы тому, что можно использовать.
Для тех, кто все еще ищет, я предлагаю взглянуть на Elastic Search
У Rails Cast есть хорошее руководство по этому вопросу.
И чтобы использовать его с heroku, загляните в Bonsai, который дает пользователям бесплатную опцию.
Надеюсь, этот ответ поможет тем, кто также ищет другие варианты, кроме использования sunspot gem с solr
Solr на Heroku использует свое собственное дополнение, которое начинается в 20 $:
Хотя я не знаю, почему это стоит заранее, и у него нет "пробной" опции, как у многих других дополнений Heroku, есть определенные способы обойти это.
Полнотекстовый поиск - это то, что вы выполняете, а Solr - это инструмент, который делает этот процесс намного более эффективным. Несмотря на то, что он довольно дорогой в БД, вы можете использовать полнотекстовый поиск в Heroku, в зависимости от вашей БД:
MYSQL
Чтобы выполнить полнотекстовый поиск на MYSQL, вы можете просто использовать оператор "LIKE" с%variable% в качестве поисковой фразы, например:
SELECT * FROM `table` WHERE `name` LIKE `%benjamin%`
Это в основном находит все записи, где столбец имени содержит "Бенджамин" где-то внутри. Это довольно медленно
POSTGRESQL
PostgreSQL предлагает больше возможностей в своем полнотекстовом поиске, но, тем не менее, все еще довольно медленный и дорогой. Вы можете прочитать больше об этом здесь, но с рельсами, вы можете использовать кучу драгоценных камней, которые делают задачу за вас
Недавно мы использовали камень под названием textacular здесь: http://firststop.herokuapp.com/
Вот код, который мы использовали для этого:
#Search
def self.search(search)
basic_search(name: search, description: search)
end
Дальнейшее чтение
Вы можете увидеть, как работает полнотекстовый поиск здесь: Любая причина не использовать встроенный полнотекстовый поиск PostgreSQL на Heroku?
Я бы порекомендовал, если вы только что создали основы для своего приложения. После этого вы можете перейти на более специализированное решение в виде Solr et al.
Вот
Если вы хотите использовать платформу Heroku, она запускается бесплатно, но вы должны заплатить почти за все надстройки, дополнительные рабочие места, дополнительное хранилище, поисковую систему, фоновые задачи, назовите это.
За 20 долларов в месяц вы также можете получить приличный VPS, но вам придется установить и управлять этим сервером самостоятельно.
Что касается солнечного пятна / солра на Heroku, я не думаю, что вы можете сделать это бесплатно.