Нет индексов, созданных Djapian для Django - PullRequest
0 голосов
/ 28 октября 2009

Я работаю над учебником по настройке Djapian и пытаюсь использовать оболочку индекса (как показано в на этом шаге ). Когда я запускаю команду «список», я получаю следующий вывод:

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 ]

3 голосов
/ 03 ноября 2009

Исправили ли вы ошибку ValueError: Empty Slice?

У меня точно такая же проблема с использованием учебника по djapian. Сначала я задавался вопросом, были ли правильные записи в моей базе данных, но теперь я думаю, что это может иметь какое-то отношение к фактическим запросам установки Xapian?

Видя, что мне вообще не приходилось указывать на установку, меня удивляет, поместил ли я ее в нужную директорию и знает ли djapian, где ее найти.

- Правка Я нашел решение, по крайней мере для меня. Учебное пособие не обновлено, и команда запроса также ожидает ряд результатов. Поэтому, если вы используете запрос mykeyword 5, вы получите 5 результатов, и ошибка ValueError: Empty Slice исчезнет. Это известная проблема, и вскоре она будет исправлена ​​из того, что я прочитал.

0 голосов
/ 29 октября 2009

Возможно, вы не загружаете индексы?

Вы можете попробовать разместить следующее в своем основном urls.py:

import djapian
djapian.load_indexes()

В комментарии к вашему вопросу вы пишете, что поместили файл index.py в корень проекта. На самом деле он должен находиться внутри приложения, вдоль models.py.

Еще одна вещь (которая вряд ли станет причиной ваших проблем); у вас запятая в следующей строке:

('pub_date', 'pub_date',),
                       ^
...