django elasticsearch dsl建议不工作
我使用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
@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,反正很烂。谢谢你的帮助!