有没有办法在elasticSearch查询语法中添加自定义(调试)键

dl5txlt9  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(171)

在调试相当复杂的查询时,我想知道是否有一种方法可以添加一些调试信息,而弹性引擎在解析查询时会忽略这些信息。使用下面的代码会导致http 400的回答出现错误x_content_parse_exception[bool] unknown field [debug]

{
    "query": {
        "bool": {
            "debug": "base query",
            "must": [
                {
                    "debug": "date not in futur",
                    "range": {
                        "date_add": {
                            "lte": "2022-10-26 14:08:11"
                        }
                    }
                },
                {
                    "debug": "index X",
                    "bool": {
                        "must": [
                            {
                                "term": {
                                    "_index": "X"
                                }
                            }
                        ]
                    }
                }
            ],
            "must_not": [...],
            "should": [...]
        }
    }
}

我在弹性文件中找不到任何关于授权(忽略)自定义密钥的信息。
我已经发现,我可以建立我的查询与调试信息,只是删除他们之前,发送到弹性引擎,但如果有一个更简单的方法,我很想知道它。

ct2axkht

ct2axkht1#

您可以使用命名查询来执行此操作:

{
    "query": {
        "bool": {
            "must": [
                {
                    "range": {
                        "date_add": {
                            "lte": "2022-10-26 14:08:11"
                        },
                        "_name": "date not in futur",
                    }
                },
                {
                    "bool": {
                        "must": [
                            {
                                "term": {
                                    "_index": "X",
                                    "_name": "index X"
                                }
                            }
                        ]
                    }
                }
            ],
            "must_not": [...],
            "should": [...]
        }
    }
}

相关问题