我的一个索引有这样的Map:
"mappings": {
"properties": {
"count": {
"type": "integer"
},
"currency": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 16
}
}
},
"query": {
"properties": {
"match_all": {
"type": "object"
},
"range": {
"properties": {
"hour": {
"properties": {
"gte": {
"type": "date"
},
"lt": {
"type": "date"
}
}
}
}
}
}
}
}
}
我不明白为什么会这样,所以我创建了一个新索引,并确保它没有这个查询绒毛。在确保新索引的Map良好之后,我开始了重新索引过程,但过了一段时间,我再次注意到:
"mappings": {
"properties": {
"count": {
"type": "integer"
},
"currency": {
"type": "keyword",
"index_options": "freqs"
},
"query": {
"properties": {
"match_all": {
"type": "object"
}
}
}
}
}
查询部分已更改,但它仍然存在,我不确定是什么导致它变成这样
2条答案
按热度按时间4ktjp1zp1#
当你不设定
"dynamic": "strict"
在Map中,将允许通过索引新数据来传播Map。您已经将查询节作为数据插入到索引中。当您重新索引数据时,所有数据都将被传输到新索引中,并且您仍然可以看到post和changingMap。要想不这样,你就得"dynamic": "strict"
或者尽量不要索引这些文档。qcbq4gxm2#
这通常是将查询发布到不同于
_search
终结点。例如,如果您运行这个,您将创建一个新文档并修改索引的Map
查询必须始终发送到
_search
终结点: