0

私は Djapian をセットアップするためのチュートリアルに取り組んでおり、indexshell を使用しようとしています (このステップで示されているように)。コマンド「リスト」を実行すると、次の出力が得られます。

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 フォルダーを site-packages からプロジェクト フォルダー内に移動し、index.py をプロジェクト ルートから djapian フォルダー内に移動しました。indexshell で 'list' を実行すると、以下が返されるようになりました。

>>> 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 が発生します。

4

2 に答える 2

3

ValueError: Empty Slice の問題は解決しましたか?

私は djapian チュートリアルを使用してまったく同じ問題を抱えています。最初は自分のデータベース エントリが正しいかどうか疑問に思っていましたが、Xapian インストールの実際のクエリと関係があるのではないかと考えています。

インストールを指定する必要がまったくないのを見て、インストールを正しいディレクトリに配置したかどうか、および djapian がその場所を知っているかどうか疑問に思います。

-- 編集少なくとも私にとっては、解決策を見つけました。チュートリアルは最新ではなく、クエリ コマンドも多数の結果を想定しています。したがって、「query mykeyword 5」を使用すると、5 つの結果が得られ、ValueError: Empty Slice が消えます。これは既知の問題であり、私が読んだ内容からすぐに修正される予定です。

于 2009-11-03T08:44:10.050 に答える
0

おそらく、インデックスをロードしていませんか?

メインの urls.py に以下を配置してみてください。

import djapian
djapian.load_indexes()

あなたの質問へのコメントで、プロジェクトのルートに index.py ファイルを配置したと書いています。models.py に沿って、実際にはアプリ内に存在する必要があります。

もう1つ(これが問題の原因になる可能性はほとんどありません)。次の行にコンマがあります。

('pub_date', 'pub_date',),
                       ^
于 2009-10-28T21:45:51.113 に答える