Я использую Django Haystack с бэкэндом ElasticSearch для своей страницы поиска.
Я использую MongoDB в качестве базы данных.
На моей странице поиска все работало нормально .
ПРОБЛЕМА
Мое веб-приложение использует внешний скрипт для изменения поля в базе данных с помощью pymongo
В моей базе данных есть 2 поля (Файлы, Анализ).
Сторонний скрипт запускается и меняет поле анализа на True или False.
После запуска сценария, когда Я ищу имя файла , это , показывающее мне обновленный Анализ в результаты.
Но когда Я ищу поле анализа , (скажем, я ищу True / False) Это не перечисляет этот обновленный в настоящее время анализ , хотя он был обновлен.
Например
Поиск: имя файла
Результат: имя файла True
Поиск: True
Результат: Результатов не найдено
Работает только после того, как я обновлю_индекс
ЧТО Я ПОПЫТАЛ
Поэтому я понял, что мне нужно обновить update_index. Но я не знаю, как выполнить обновление из внешнего скрипта Python.
Я пытался запустить
os.system("python /myapp/manage.py update_index")
Я получаю ошибку
Unknown command: 'update_index'
Когда я проверил команду управления, доступную из внешнего скрипта, он не выводит список команд стога сена.
os.system("python /myapp/manage.py")
Available subcommands:
[auth]
#Things under [auth]
[contenttypes]
#Things under [contenttypes]
[django]
#Things under [django]
[sessions]
#Things under [sessions]
[staticfiles]
#Things under [staticfiles]
Здесь не отображаются подкоманды haystack, в отличие от того, что я запускаю в терминале.
Если я запускаю на терминале
#other subcommands
[haystack]
build_solr_schema
clear_index
haystack_info
rebuild_index
update_index
Так что я ожидаю результата
Поиск: True
Результаты: имя файла True
Как мне этого добиться?
Как мне обновить update_index из внешнего скрипта?
Любые другие идеи?