Как перестроить_индекс в стоге сена Джанго
Я использую Aldryn Search - плагин для Django CMS, который использует Haystack.
Я прочитал обе документации вверх и вниз, и я не понимаю, как правильно запустить manage.py rebuild_index. Если я запускаю его как обычно, я получаю:
SolrError: Failed to connect to server at 'http://127.0.0.1:8000/update/?commit=true', are you sure that URL is correct?
Я предполагаю, что это потому, что мой сервер не работает. Но я не могу выполнить эту команду, пока работает мой сервер. Я пытаюсь открыть новую вкладку в терминале и выполнить команду, пока мой сервер работает на другой вкладке, и я получаю сообщение об ошибке 403.
Такая простая вещь не объясняется. Также нужно ли повторять эту команду каждый раз, когда страница меняет содержимое или создается новая страница или запись в блоге? Я вижу в этом огромную проблему на производстве.
1 ответ
Это потому, что ваш сервер разработки django не работает.
Чтобы поддерживать работу обоих серверов (solr и Django), запустите solr в фоновом режиме, а затем запустите Django dev server. Итак, предполагая, что сервер solr находится в вашей домашней директории, сначала запустите его:
cd ~/solr-version/example/
java -jar start.jar --daemon &
СОВЕТ: Если вы хотите убить фоновый сервер solr, выполните: ps aux | grep java
и вы должны получить что-то вроде этого
username 3432 134 1.1 2431016 93196 Sl 09:52 0:06 java -jar start.jar --daemon
username 3466 0.0 0.0 11744 932 S+ 09:52 0:00 grep --colour=auto java
Во втором столбце указан pid процесса, поэтому, чтобы его убить, выполните:
kill 3432
Теперь вы можете запустить Django Dev Server, перейдя в корень вашего проекта и ./manage.py runserver
Что касается вашего второго вопроса: нет, его не нужно перезапускать каждый раз, когда изменяется код, если вы используете django-haystack RealTimeSignalProcessor. Это очень очень просто. Каждый раз, когда модель обновляется (т.е. запись добавляется, изменяется, удаляется), индекс будет обновляться автоматически!
Надеюсь, это поможет вам!