Нет индексов, созданных Djapian для Django
Я работаю над учебником по настройке Djapian и пытаюсь использовать оболочку indexs (как показано на этом шаге). Когда я запускаю команду "список", я получаю следующий вывод:
Installed spaces/models/indexers:
- 0: 'global'
Поэтому я не могу выполнить какие-либо запросы:
>>> query
No index selected
Что приводит меня к попытке:
>>> use 0
Illegal index alias '0'. See 'list' command for available aliases
Мой index.py выглядит следующим образом:
from djapian import space, Indexer, CompositeIndexer
from cms.models import Article
class ArticleIndexer(Indexer):
fields = ['body']
tags = [
('title', 'title'),
('author', 'author'),
('pub_date', 'pub_date',),
('category', 'category')
]
space.add_index(Article, ArticleIndexer, attach_as='indexer')
Обновление: я переместил папку djapian из пакетов сайта в папку своего проекта и переместил index.py из корня проекта в папку djapian. Когда я запускаю 'list' в indexshell, теперь возвращается следующее:
>>> list
Installed spaces/models/indexers:
- 0: 'global'
- 0.0 'cms.Article'
-0.0.0: 'djapian.space.defaultcmsarticleindexer'
Я все еще не могу ничего сделать, хотя, когда я пытаюсь выбрать индекс, я все еще получаю следующую ошибку:
>>> use 0.0
Illegal index alias '0'. See 'list' command for available aliases
Обновление 2: у меня была проблема с настройкой DJAPIAN_DATABASE_PATH, которая сейчас исправлена. Я могу выбрать индексатор с помощью команды "использовать 0.0.0", но когда я пытаюсь выполнить запрос, он вызывает следующий ValueError: "Пустой фрагмент".
2 ответа
Исправлена ли ошибка ValueError: Empty Slice?
У меня точно такая же проблема с использованием учебника по Djapian. Сначала я задавался вопросом, были ли правильные записи в моей базе данных, но теперь я думаю, что это может иметь какое-то отношение к фактическим запросам установки Xapian?
Видя, что мне вообще не приходилось указывать на установку, меня удивляет, поместил ли я ее в нужную директорию и знает ли djapian, где ее найти.
- Изменить Я нашел решение, по крайней мере для меня. Учебное пособие не обновлено, и команда запроса также ожидает ряд результатов. Таким образом, если вы используете запрос mykeyword 5, вы получите 5 результатов, и ошибка ValueError: Empty Slice исчезнет. Это известная проблема, и она скоро будет исправлена из того, что я прочитал.
Возможно, вы не загружаете индексы?
Вы можете попробовать разместить следующее в вашем основном urls.py:
import djapian
djapian.load_indexes()
В комментарии к вашему вопросу вы пишете, что поместили файл index.py в корень проекта. На самом деле он должен находиться внутри приложения, вдоль models.py.
Еще одна вещь (которая вряд ли станет причиной ваших проблем); у вас есть запятая в следующей строке:
('pub_date', 'pub_date',),
^