在 Kibana Discover 中使用 Elastic Query DSL 启用 more_like_this 等

Using Elastic Query DSL in Kibana Discover to enable more_like_this etc

Kibana 文档说:

When lucene is selected as your query language you can also submit queries using the Elasticsearch Query DSL.

但是,每当我尝试在“发现”窗格中输入此类查询时,都会收到解析错误。这些查询在 Dev Tools 窗格中运行良好。

例如,如果我尝试像这样的简单查询:

{"query":{"match_phrase":{"summary":"stochastic noise"}}}

我收到以下错误:

Discover: [parsing_exception] no [query] registered for [query], with { line=1 & col=356 }    

Error: [parsing_exception] no [query] registered for [query], with { line=1 & col=356 }
    at respond (http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:111:161556)
    at checkRespForFailure (http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:111:160796)
    at http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:105:285566
    at processQueue (http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:58:132456)
    at http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:58:133349
    at Scope.$digest (http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:58:144239)
    at Scope.$apply (http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:58:147018)
    at done (http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:58:100026)
    at completeRequest (http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:58:104697)
    at XMLHttpRequest.xhr.onload (http://<mydomain>:5601/bundles/vendors.bundle.js?v=16602:58:105435)

(我在上面删除了我的域并替换为 <mydomain>

以上查询工作正常,returns 在命令行上使用 cURL 或使用

结果
GET /_search
{
  "query": {
    "match_phrase": {
      "summary": "stochastic noise"
    }
  }
}

在开发工具控制台中。

我希望使用来自 Discover 面板的 more_like_this 查询,所以(我认为)我需要使用 Query DSL 而不仅仅是使用直接的 lucene 查询语法。但是,如果有一种方法可以像使用直接 lucene(或 kuery)那样使用专业查询,那就太好了。

原因很简单,因为输入框只支持您在 query 部分中包含的内容,所以如果您输入这个,它会起作用:

{"match_phrase":{"summary":"stochastic noise"}}

如果您考虑一下,它是有道理的,即 aggs 部分在“发现”窗格中没有意义,并且 from/size 属性已由默认设置处理。

如果查看完整的查询 DSL,您会看到有几个部分:queryaggsfromsize_sourcehighlight 等。在“发现”窗格中,您应该只指定进入 query 部分的内容,没有其他内容。