elasticsearch 我们可以强制弹性搜索将所有数字字段视为双精度字段吗
我在索引数据时使用动态绑定。比如说
elasticsearch 我们可以强制弹性搜索将所有数字字段视为双精度字段吗,
elasticsearch,lucene,
elasticsearch,Lucene,我在索引数据时使用动态绑定。比如说 { "a" : 10 } 将为字段创建映射为long。而第二次索引时,数据可能是双{“a”:10.10}。但由于映射已经定义为尽可能长的长度,因此它将索引尽可能长的数据。解决这个问题的唯一方法是提前定义映射,由于各种原因,我不想这样做 所以我的问题是,有没有一种方法可以强制弹性搜索,将所有数字字段都视为双精度 您可以使用动态映射模板: 如果它与long匹配,则将其映射为double: PUT my_index { "mappings": {
{ "a" : 10 }
将为字段创建映射为long
。而第二次索引时,数据可能是双{“a”:10.10}
。但由于映射已经定义为尽可能长的长度,因此它将索引尽可能长的数据。解决这个问题的唯一方法是提前定义映射,由于各种原因,我不想这样做
所以我的问题是,有没有一种方法可以强制弹性搜索,将所有数字字段都视为
双精度
您可以使用动态映射模板:
如果它与long匹配,则将其映射为double:
PUT my_index
{
"mappings": {
"my_type": {
"dynamic_templates": [
{
"integers": {
"match_mapping_type": "long",
"mapping": {
"type": "double"
}
}
}
]
}
}
}
我已经找到了答案。我会试着出去看看。谢谢,我刚刚在网上发布后就发现了这一点。非常感谢。在发布我的答案后,看到了您关于自己寻找解决方案的评论:)