Нет индексов, созданных 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',),
                       ^
Другие вопросы по тегам