Индексирование данных
Давайте проиндексируем записи нашего блога в Solr. Откройте терминал и выполните следующую команду:
python manage.py rebuild_index
Вы должны увидеть следующее предупреждение:
WARNING: This will irreparably remove EVERYTHING from your search
index in connection 'default'.
Your choices after this are to restore from backups or rebuild via the `rebuild_index` command.
Are you sure you wish to continue? [y/N]
Введите y и нажмите Enter. Haystack очистит индекс поиска и вставит все опубликованные записи блога. Вы увидите следующее:
Removing all documents from your index because you said so.
All documents removed.
Indexing 4 posts
Откройте http://127.0.0.1:8983/solr/#/blog в в браузере. В разделе Statistics, можно увидеть количество индексируемых документов:
Теперь откройте http://127.0.0.1:8983/solr/#/blog/query. Это интерфейс запроса, предоставленный Solr. Нажмите кнопку Execute query. Запрос по умолчанию запрашивает все документы, проиндексированные в ядре. На выходе вы получите данные с результатами запроса в формате JSON. Выглядит это следующим образом:
{
"id": "blog.post.1",
"text": "Who was Django Reinhardt?\njazz, music\nThe Django web framework was named after the amazing jazz guitarist Django Reinhardt.",
"django_id": "1",
"publish": "2015-09-20T12:49:52Z",
"django_ct": "blog.post"
},
Это данные, хранящиеся для каждой записи в индексе поиска. Поле text содержит заголовок, теги разделенные запятыми, и тело записи, поскольку это поле строится с помощью шаблона, который мы определили ранее.
Используйте команду python manage.py rebuild_index
для удаления всех индексов и повторного индексирования документов. Чтобы обновить индекс без удаления всех объектов, можно использовать python manage.py update_index
. Кроме того, можно использовать параметр--age=<num_hours>
для обновления less объектов. Для этого можно настроить задание в Cron.