【发布时间】:2016-11-26 19:15:57
【问题描述】:
我有课,我尝试将student_id 设置为elasticsearch 中的_id 字段。我指的是来自 elasticsearch-dsl 文档的persistent example。
from elasticsearch_dsl import DocType, String
ELASTICSEARCH_INDEX = 'student_index'
class StudentDoc(DocType):
'''
Define mapping for Student type
'''
student_id = String(required=True)
name = String(null_value='')
class Meta:
# id = student_id
index = ELASTICSEARCH_INDEX
我通过在Meta 中设置id 进行绑定,但它不起作用。
我得到了覆盖save method的解决方案,我实现了这个
def save(self, **kwargs):
'''
Override to set metadata id
'''
self.meta.id = self.student_id
return super(StudentDoc, self).save(**kwargs)
我将这个对象创建为
>>> a = StudentDoc(student_id=1, tags=['test'])
>>> a.save()
有没有直接从Meta 设置而不覆盖save 方法的方法?
【问题讨论】:
-
你能否展示一下你是如何创建一个 `StudentDoc` 的新实例的?
-
@Val 用更多信息更新了我的问题。
-
@Val,有
MetaField,但我不知道这里会有用。
标签: elasticsearch python elasticsearch elasticsearch-dsl