2009-10-28 38 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:「空片」。

+0

你運行過「manage.py index --rebuild」嗎? – shanyu 2009-10-28 17:28:02

+0

我做了,我試着重新運行它,它沒有任何區別。 – 2009-10-28 17:48:37

+0

你可以運行「列表」並粘貼到索引列表中嗎? – lemonad 2009-10-28 17:55:21

回答

3

你是否修復了ValueError的問題:空切片?

我有使用djapian教程完全相同的問題。首先,我想知道我的數據庫條目是否正確,但現在我認爲這可能與Xapian安裝的實際查詢有關。

看到我沒有必要指出安裝在所有奇蹟我,如果我把它放在正確的目錄,如果djapian知道在哪裏可以找到它。

- 編輯 我找到了解決方案,至少對我來說。該教程不是最新的,查詢命令也需要一些結果。所以如果你使用'query mykeyword 5',你會得到5個結果,並且ValueError:Empty Slice消失。這是一個已知的問題,它將很快從我閱讀的內容中解決。

0

也許你沒有加載索引?

你可以嘗試把你的主urls.py如下:

import djapian 
djapian.load_indexes() 

在你的問題你寫你已經放置index.py文件在項目根評論。它應該實際上位於一個應用程序中,沿着models.py。

還有一件事(這是不太可能成爲你的問題的原因);你在下面一行有一個流浪逗號:

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

我已經加載索引,但忽略了流浪的逗號。感謝您指出它,但不幸的是它並沒有解決我的問題。 – 2009-10-29 08:30:21

相關問題