Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
django elasticsearch dsl建议不工作_Django_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Django,elasticsearch" /> elasticsearch,Django,elasticsearch" />

django elasticsearch dsl建议不工作

django elasticsearch dsl建议不工作,django,elasticsearch,Django,elasticsearch,我使用django elasticsearch dsl创建了以下文档 @registry.register_document class QuestionDocument(Document): class Index: name = 'questions' class Django: model = QuestionModel fields = ['title', 'text'] 现在当我尝试用下面的命令做一个建议时 Quest

我使用django elasticsearch dsl创建了以下文档

@registry.register_document
class QuestionDocument(Document):
    class Index:
        name = 'questions'

    class Django:
        model = QuestionModel
        fields = ['title', 'text']
现在当我尝试用下面的命令做一个建议时

QuestionDocument.search().suggest("questions", "text", completion={'field': 'title'}).to_queryset().all()
我得到以下错误:

 elasticsearch.exceptions.RequestError: RequestError(400, 'search_phase_execution_exception', 'Field [title] is not a completion suggest field')

我做错了什么?我怎样才能修好它?我试图在软件包文档中找到教程,但找不到任何内容。

字段[标题]不是完成建议字段
表示您的标题字段不是在建议查询中使用它所需的类型
完成

您需要像这样定义
QuestionDocument
类:

@registry.register_document
class QuestionDocument(Document):

    title = fields.CompletionField()             <--- add this

    class Index:
        name = 'questions'

    class Django:
        model = QuestionModel
        fields = ['text']                        <--- remove title here
@registry.register\u文件
课堂提问文件(文件):

title=字段。CompletionField()
字段[title]不是完成建议字段
表示您的标题字段不是在建议查询中使用它所必需的类型
完成

您需要像这样定义
QuestionDocument
类:

@registry.register_document
class QuestionDocument(Document):

    title = fields.CompletionField()             <--- add this

    class Index:
        name = 'questions'

    class Django:
        model = QuestionModel
        fields = ['text']                        <--- remove title here
@registry.register\u文件
课堂提问文件(文件):

title=字段。CompletionField()
字段[title]不是完成建议字段
表示您的
title
字段不是在建议查询中使用它所需的类型
completion
。您能显示您的映射吗?对于Django模型字段,Django elasticsearch dsl会自动创建到elasticsearch的映射,但我不知道如何使用Django elasticsearch dsl在elasticsearch上创建新映射。
Field[title]不是完成建议字段
表示您的
标题
字段不是在建议查询中使用它所需的类型
完成
。您可以显示您的映射吗?对于Django模型字段,Django elasticsearch dsl会自动创建到elasticsearch的映射,但我不知道如何使用Django-elasticsearch-dsl在elasticsearch上创建新映射。这返回一错误,表示无法重新声明字段。确切的错误消息是:
django\u elasticsearch\u dsl.exceptions.redecladerifelder错误:您无法在QuestionDocument上重新声明名为“title”的字段已修复,当然,您还需要将其从
django
类中的字段声明中删除。这仍然会产生错误,说明title不是一个完成建议字段
elasticsearch.exceptions.RequestError:RequestError(400,“搜索阶段执行例外”,“字段[标题]不是完成建议字段”)
Yes,您可能需要删除索引并让Django使用新的字段定义重新创建索引我也删除了索引,但仍然不起作用,但我认为这应该起作用。我想我只是不会用django_elasticsearch_dsl,反正很烂。谢谢你的帮助!这将返回一个错误,说明无法重新声明该字段。确切的错误消息是:
django\u elasticsearch\u dsl.exceptions.redecladerifelder错误:您无法在QuestionDocument上重新声明名为“title”的字段已修复,当然,您还需要将其从
django
类中的字段声明中删除。这仍然会产生错误,说明title不是一个完成建议字段
elasticsearch.exceptions.RequestError:RequestError(400,“搜索阶段执行例外”,“字段[标题]不是完成建议字段”)
Yes,您可能需要删除索引并让Django使用新的字段定义重新创建索引我也删除了索引,但仍然不起作用,但我认为这应该起作用。我想我只是不会用django_elasticsearch_dsl,反正很烂。谢谢你的帮助!