2009-10-28 1 views
0

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

Installed spaces/models/indexers: 
- 0: 'global' 

поэтому я не могу запустить любые запросы:

>>> query 
No index selected 

Который ведет меня к попытке:

>>> use 0 
Illegal index alias '0'. See 'list' command for available aliases 

Мой индекс .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. Когда я запускаю «список» в 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, которая теперь исправлена. Я могу выбрать индексатор, используя команду «use 0.0.0», но когда я пытаюсь запустить запрос, он вызывает следующий ValueError: «Empty slice».

+0

Вы запустили «manage.py index --rebuild»? – shanyu

+0

Я сделал, и я попробовал повторно запустить его сейчас, и это не имело никакого значения. –

+0

Можете ли вы запустить «список» и вставить в список своих индексов? – lemonad

ответ

3

У вас проблема с ValueError: Empty Slice?

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

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

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

0

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

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

import djapian 
djapian.load_indexes() 

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

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

('pub_date', 'pub_date',), 
        ^
+0

Я уже загружал индексы, но забыл прочь запятую. Спасибо, что указали это, но, к сожалению, это не решило мою проблему. –