Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Djapian没有为Django创建索引器_Django_Xapian - Fatal编程技术网

Djapian没有为Django创建索引器

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

我正在学习设置Djapian的教程,并尝试使用中演示的indexshell。当我运行命令“list”时,我得到以下输出:

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还是别的什么地方?我已经在加载索引了,但是忽略了那个多余的逗号。感谢您指出这一点,但不幸的是,这并没有解决我的问题。我已经在加载索引,但忽略了错误的逗号。谢谢你指出,但不幸的是,这并没有解决我的问题。