我上课,尝试在elasticsearch中将其设置student_id
为_id
字段。我指的是来自Elasticsearch-
dsl文档的持久示例。
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
我受限制id
,Meta
但无法正常工作。
我得到解决方案作为覆盖save
方法并且实现了这一点
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
方法的直接设置方法?
有几种分配ID的方法:
你可以这样
a = StudentDoc(meta={'id':1}, student_id=1, tags=['test'])
a.save()
像这样:
a = StudentDoc(student_id=1, tags=['test'])
a.meta.id = 1
a.save()
另请注意,在ES
1.5之前,可以指定一个字段用作文档_id
(在您的情况下可能是student_id
),但是在1.5中已弃用,从那时起,您必须明确提供ID或让ES为您挑选一个。
问题内容: 我有一个已经存在的表,该表的字段应该唯一,但不是。我只知道这一点,因为在表中创建了一个条目,该条目具有与另一个已经存在的条目相同的值,这导致了问题。 如何使该字段仅接受唯一值? 问题答案: 对于MySQL 5.7.4或更高版本: 从MySQL 5.7.4开始,ALTER TABLE的IGNORE子句被删除,使用它会产生错误。 因此,请确保先删除重复的条目,因为不再支持IGNORE关键字
问题内容: 我们有两个表。第一个包含名称(varchar)字段。第二个包含一个字段,该字段引用第一个表中的名称字段。对于与该名称关联的每一行,将重复第二个表中的此外键。通常不建议使用varchar / string字段作为两个表之间的联接吗?何时可以将字符串字段用作联接字段? 问题答案: 当然可以使用varchar作为键字段(或简单地将其连接)。它的主要问题取决于您通常在varchar字段中存储的
问题内容: 我在AndroidStudio 1.2.1.1和Gradle 1.2.3中使用了ProGuard。 My Gradle的发布版本的配置如下: 我希望混淆类的私有字段。 到目前为止,这是我的proguard配置文件(经过多次尝试): 但是在从AndroidGuard 反编译后,我最终得到了: 我知道这种混淆的使用是有限的,但是我想由ProGuard重命名。怎么做? 这是refcard。
我需要从Spring应用程序向MongoDB实例抛出文档,在那里我可以利用其数据包中的MongoTemplate。 但是Spring将那些instances字段作为MongoDB文档id,导致数据库中的id重复,从而防止了重复的实例。 null 通过阅读这个问题,我发现字段对于Spring是必需的,我需要添加一个字段。 这就是我将文档插入集合的方式: 我对ByteBuddy完全陌生(我认为这可能是
我把这三门课分别放在不同的文件中 我有下面的映射器 这目前仅映射lastName并起作用,我想将Book中的作者字符串映射为 我怎么能这么做?我在MapStruct文档中找不到任何东西。
我在一个包含3000个文档的核心中有一个Solr索引。 我想基于唯一键PaperID修改整个核心中单个字段的值。 有没有人能为我指点一下...最诚挚的问候