Как получить драгоценный камень сфинкса, работающий в PaaS, например, heroku - PullRequest
0 голосов
/ 22 февраля 2019

После развертывания приложения rails 5, использующего гем sphinx для поиска, я получаю эту ошибку:

2019-02-22T01:05:28.930528+00:00 app[web.1]: D, [2019-02-22T01:05:28.930455 #4] DEBUG -- : [64986155-264b-42ae-a1ce-d2772cd3dc38]   Sphinx Query (1.4ms)  SELECT * FROM `article_core` WHERE MATCH('Figaro') AND `sphinx_deleted` = 0 LIMIT 0, 500
2019-02-22T01:05:28.930863+00:00 app[web.1]: I, [2019-02-22T01:05:28.930788 #4]  INFO -- : [64986155-264b-42ae-a1ce-d2772cd3dc38] Completed 500 Internal Server Error in 97ms (ActiveRecord: 47.5ms)
2019-02-22T01:05:28.931739+00:00 app[web.1]: F, [2019-02-22T01:05:28.931653 #4] FATAL -- : [64986155-264b-42ae-a1ce-d2772cd3dc38]
2019-02-22T01:05:28.931841+00:00 app[web.1]: F, [2019-02-22T01:05:28.931771 #4] FATAL -- : [64986155-264b-42ae-a1ce-d2772cd3dc38] ThinkingSphinx::ConnectionError (Error connecting to Sphinx via the MySQL protocol. Can't connect to MySQL server on '127.0.0.1' (111)):
2019-02-22T01:05:28.931936+00:00 app[web.1]: F, [2019-02-22T01:05:28.931867 #4] FATAL -- : [64986155-264b-42ae-a1ce-d2772cd3dc38]
2019-02-22T01:05:28.932045+00:00 app[web.1]: F, [2019-02-22T01:05:28.931975 #4] FATAL -- : [64986155-264b-42ae-a1ce-d2772cd3dc38] app/controllers/articles_controller.rb:169:in `results'

Как обойти эту ошибку?

ОБНОВЛЕНИЕ: После добавления отсутствующего flying_sphinxgem и деревянное дополнение 'heroku', я все еще получаю:

FATAL -- : [e52202a5-b3fa-4b89-b188-e7e23c1cfc58] ThinkingSphinx::ConnectionError (Error connecting to Sphinx via the MySQL protocol. Lost connection to MySQL server at 'reading authorization packet', system error: 0):

ОБНОВЛЕНИЕ2: После попытки запуска команды запуска все еще не повезло:

heroku run rake ts:start; echo $?

 ›   Warning: heroku update available from 7.18.9 to 7.21.0
Running rake ts:start on ⬢ dart-research-database... up, run.8944 (Hobby)
I, [2019-02-22T01:54:12.587534 #4]  INFO -- : Executing Action: start
W, [2019-02-22T01:54:13.378618 #4]  WARN -- : Action failed.
I, [2019-02-22T01:54:13.651615 #4]  INFO -- : Action Finished: start
0

1 Ответ

0 голосов
/ 22 февраля 2019

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

  • ts:configure создаст файл конфигурации (а на Heroku отправьте его на серверы Flying Sphinx).
  • ts:start запустит демон.
  • ts:index обработает все ваши индексы.

Если вы используете индексы на основе SQLВы должны запустить задачу индексации перед запуском, но с индексами в реальном времени это в порядке, указанном выше.Задача перестроения позаботится обо всем этом в соответствующем порядке.

И эти задачи будут работать правильно как локально, так и в Heroku, при условии, что вы используете v4 драгоценного камня сфинкса и v2 летающегокамень сфинкса.

...