es索引Map具有“query”参数

j2cgzkjk  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(2)|浏览(338)

我的一个索引有这样的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"
                        }
                    }
                }
            }
        }

查询部分已更改,但它仍然存在,我不确定是什么导致它变成这样

4ktjp1zp

4ktjp1zp1#

当你不设定 "dynamic": "strict" 在Map中,将允许通过索引新数据来传播Map。您已经将查询节作为数据插入到索引中。当您重新索引数据时,所有数据都将被传输到新索引中,并且您仍然可以看到post和changingMap。要想不这样,你就得 "dynamic": "strict" 或者尽量不要索引这些文档。

qcbq4gxm

qcbq4gxm2#

这通常是将查询发布到不同于 _search 终结点。
例如,如果您运行这个,您将创建一个新文档并修改索引的Map

POST index/_doc
{
  "query": {
    "match_all": {}
  }
}

查询必须始终发送到 _search 终结点:

POST index/_search
{
  "query": {
    "match_all": {}
  }
}

相关问题