我想插入文档的结构如下:
post = {
"day_1_scores": [1,2,3],
"day_2_scores":[4,5,6]
}
我知道,elasticsearch_dsl
有几个自定义的数据类型,如Document
,Integer
,但我不知道如何做一个地图,再从string
映射到ints
列表
例如,如果我想创建一个帖子一个名为string
一个content
属性,我会去:
class Post(Document):
content = Text(analyzer='snowball', fields={'raw': Keyword()})
def save(self, **kwargs):
print("saving post")
super(Post, self).save(**kwargs)
class Index:
name = 'blog'
doc_type = "post"
当我需要将其插入到数据库,我会打电话给save
方法。
但我想,是为这个职位有另一个属性:一个地图,再从string
映射到ints
列表
在elasticsearch有对名单没有特别的映射。如果文件字段包含的值的列表,然后该字段类型是在列表中的项目的类型。
如果你是一个索引字段,以数字值和elasticsearch认为这是一个字符串,则该字段值包围引号。如果你无法控制所添加的报价,你可以将代码:1.添加映射到索引中,指出该字段是一个数字。 OR 2.新增“numeric_detection”的索引映射。
这两个选项会做你在找什么 - 考虑到特定领域为数字(哪怕是数组)