Djapian没有为Django创建索引器
我正在学习设置Djapian的教程,并尝试使用中演示的indexshell。当我运行命令“list”时,我得到以下输出:Djapian没有为Django创建索引器,django,xapian,Django,Xapian,我正在学习设置Djapian的教程,并尝试使用中演示的indexshell。当我运行命令“list”时,我得到以下输出: Installed spaces/models/indexers: - 0: 'global' 因此,我无法运行任何查询: >>> query No index selected 这让我尝试: >>> use 0 Illegal index alias '0'. See 'list' command for available alia
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文件夹中。在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_数据库_路径设置有问题,现已修复。我可以使用命令“use 0.0.0”选择索引器,但当我尝试运行查询时,它会引发以下值错误:Empty slice。也许您没有加载索引 您可以尝试在主URL.py中放置以下内容:
import djapian
djapian.load_indexes()
在对问题的评论中,您写道您已将index.py文件放置在项目根目录中。它实际上应该与models.py一起驻留在应用程序中
还有一件事不太可能是你的问题的原因;您在下面的行中有一个错误的逗号:
('pub_date', 'pub_date',),
^
也许您没有加载索引 您可以尝试在主URL.py中放置以下内容:
import djapian
djapian.load_indexes()
在对问题的评论中,您写道您已将index.py文件放置在项目根目录中。它实际上应该与models.py一起驻留在应用程序中
还有一件事不太可能是你的问题的原因;您在下面的行中有一个错误的逗号:
('pub_date', 'pub_date',),
^
您是否已修复ValueError的问题:空切片 我在使用djapian教程时遇到了完全相同的问题。首先我想知道我的数据库条目是否正确,但现在我想这可能与Xapian安装的实际查询有关 看到我根本不需要指向安装,我想知道我是否把它放在了正确的目录中,djapian是否知道在哪里可以找到它 -编辑
我找到了解决办法,至少对我来说是这样。教程不是最新的,查询命令也需要大量结果。因此,如果您使用'query mykeyword 5',您将得到5个结果,ValueError:Empty Slice将消失。这是一个已知的问题,从我所读到的内容来看,很快就会得到解决。您解决了ValueError:空切片的问题了吗 我在使用djapian教程时遇到了完全相同的问题。首先我想知道我的数据库条目是否正确,但现在我想这可能与Xapian安装的实际查询有关 看到我根本不需要指向安装,我想知道我是否把它放在了正确的目录中,djapian是否知道在哪里可以找到它 -编辑
我找到了解决办法,至少对我来说是这样。教程不是最新的,查询命令也需要大量结果。因此,如果您使用'query mykeyword 5',您将得到5个结果,ValueError:Empty Slice将消失。这是一个已知的问题,从我读到的内容来看,它很快就会得到修复。你运行manage.py index-rebuild了吗?我运行了,我现在尝试重新运行它,但没有任何区别。你能运行list并粘贴到索引列表中吗?运行“list”的结果显示在我文章的第一个引号/代码块中。你把这个索引器放在哪里释义index.py或其他地方?您运行过manage.py index-rebuild吗?我运行过,现在尝试重新运行,但没有任何区别。您可以运行list并粘贴到索引列表中吗?运行“list”的结果显示在我文章的第一个引号/代码块中。您将此索引器定义放置在何处?是index.py还是别的什么地方?我已经在加载索引了,但是忽略了那个多余的逗号。感谢您指出这一点,但不幸的是,这并没有解决我的问题。我已经在加载索引,但忽略了错误的逗号。谢谢你指出,但不幸的是,这并没有解决我的问题。