如何让elastic4s存储_timestamp字段?
How to make elastic4s store _timestamp field?
我可以像这样在映射上启用时间戳:
"someType" as (
"someField" typed StringType
) timestamp true
但是为了能够在使用 "fields": ["_timestamp"]
搜索时检索到它,还需要将 store
属性设置为 true
。但是如果我这样做:
"someType" as (
"someField" typed StringType,
"_timestamp" typed LongType/DateType store true
) timestamp true
那么就不是_search
返回的了:
GET /myIndex/someType/_search
{
"fields": ["_timestamp"],
"query" : {
"match_all" : {}
}
}
生成的映射如下所示:
"someType": {
"dynamic": "dynamic",
"_timestamp": {
"enabled": true
},
"properties": {
"_timestamp": {
"store": "yes",
"type": "long"
}
}
}
但我感觉应该是这样的:
"someType": {
"dynamic": "dynamic",
"_timestamp": {
"enabled": true,
"store": true
},
"properties": {
"_timestamp": {
"store": "yes",
"type": "long"
}
}
}
这不能使用 elastic4s
Dsl 完成,因为它没有对名为 _timestamp
的字段进行特殊处理,因此该字段转到属性而不是该映射中的字段...
Elastic4s 版本 1.5.7 允许您像这样设置时间戳:
create index("myindex") mappings(
mapping name "foo" timestamp {
timestamp enabled true format "qwerty" store true path "somepath"
}
)
路径、格式和存储是可选的。
我可以像这样在映射上启用时间戳:
"someType" as (
"someField" typed StringType
) timestamp true
但是为了能够在使用 "fields": ["_timestamp"]
搜索时检索到它,还需要将 store
属性设置为 true
。但是如果我这样做:
"someType" as (
"someField" typed StringType,
"_timestamp" typed LongType/DateType store true
) timestamp true
那么就不是_search
返回的了:
GET /myIndex/someType/_search
{
"fields": ["_timestamp"],
"query" : {
"match_all" : {}
}
}
生成的映射如下所示:
"someType": {
"dynamic": "dynamic",
"_timestamp": {
"enabled": true
},
"properties": {
"_timestamp": {
"store": "yes",
"type": "long"
}
}
}
但我感觉应该是这样的:
"someType": {
"dynamic": "dynamic",
"_timestamp": {
"enabled": true,
"store": true
},
"properties": {
"_timestamp": {
"store": "yes",
"type": "long"
}
}
}
这不能使用 elastic4s
Dsl 完成,因为它没有对名为 _timestamp
的字段进行特殊处理,因此该字段转到属性而不是该映射中的字段...
Elastic4s 版本 1.5.7 允许您像这样设置时间戳:
create index("myindex") mappings(
mapping name "foo" timestamp {
timestamp enabled true format "qwerty" store true path "somepath"
}
)
路径、格式和存储是可选的。