2009-10-28 7 views
0

Je travaille sur le tutoriel pour configurer Djapian et j'essaie d'utiliser l'indexshell (comme illustré dans this step). Quand je lance la commande 'list' Je reçois la sortie suivante:Aucun indexeur créé par Djapian pour Django

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

Je ne peux donc pas exécuter des requêtes:

>>> query 
No index selected 

Ce qui me conduit à tenter:

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

Mon index .py est la suivante:

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') 

Mise à jour: J'ai déplacé le dossier djapian de site-packages vers dans mon dossier de projet et je déplace index.py de la racine du projet dans le dossier djapian. Quand je lance « liste » dans le indexshell ce qui suit est maintenant retourné:

>>> list 
Installed spaces/models/indexers: 
- 0: 'global' 
    - 0.0 'cms.Article' 
     -0.0.0: 'djapian.space.defaultcmsarticleindexer' 

Je ne peux toujours pas faire quoi que ce soit bien que lorsque je tente de sélectionner un index je reçois toujours l'erreur suivante:

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

Mise à jour 2: J'ai eu un problème avec mon paramètre DJAPIAN_DATABASE_PATH qui est maintenant corrigé. Je peux sélectionner un indexeur en utilisant la commande 'use 0.0.0' mais quand j'essaye d'exécuter une requête il soulève l'erreur ValueError suivante: "tranche vide".

+0

Avez-vous exécuté "manage.py index --rebuild"? – shanyu

+0

Je l'ai fait et j'ai essayé de le relancer maintenant et cela n'a fait aucune différence. –

+0

Pouvez-vous exécuter "liste" et coller dans la liste de vos index? – lemonad

Répondre

3

Avez-vous résolu le problème du ValueError: Vide tranche? Je rencontre exactement le même problème en utilisant le tutoriel djapian. D'abord je me demandais si mes entrées de base de données étaient correctes, mais maintenant je pense que cela pourrait avoir quelque chose à voir avec l'interrogation réelle de l'installation de Xapian? Voyant que je n'ai pas du tout pointer vers l'installation, je me demande si je l'ai placé dans le bon répertoire et si djapian sait où le trouver.

- Editer J'ai trouvé la solution, au moins pour moi. Le tutoriel n'est pas à jour et la commande de requête attend également un certain nombre de résultats. Donc, si vous utilisez 'query mykeyword 5' vous obtenez 5 résultats et l'erreur ValueError: Empty Slice disparaît. C'est un problème connu et il sera corrigé rapidement de ce que j'ai lu.

0

Vous ne chargez peut-être pas les index?

Vous pouvez essayer de placer les éléments suivants dans votre principale urls.py:

import djapian 
djapian.load_indexes() 

Dans un commentaire à votre question, vous écrivez que vous avez placé le fichier index.py dans la racine du projet. Il devrait effectivement résider dans une application, le long de models.py.

Encore une chose (qui est très peu susceptible d'être la cause de vos problèmes); vous avez une virgule parasite sur la ligne suivante:

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

Je chargeais déjà des index mais j'avais oublié la virgule. Merci de l'avoir signalé, mais malheureusement cela n'a pas résolu mon problème. –

Questions connexes