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

时间:2018-04-06 16:06:45

标签: elasticsearch kibana querydsl

Kibana文档说:

  

当选择lucene作为查询语言时,您也可以提交   使用Elasticsearch Query DSL进行查询。

但是,每当我尝试在“发现”窗格中输入此类查询时,都会出现解析错误。这些查询在“开发工具”窗格中正常工作。

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

{"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>

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

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

在Dev Tools控制台中。

我希望使用Discover面板中的more_like_this查询,因此(我认为)我将需要使用查询DSL而不只是使用直接lucene查询语法。但是,如果有一种方法可以使用像直接lucene(或kuery)这样的专业查询,那将是很棒的。

1 个答案:

答案 0 :(得分:4)

原因很简单,因为输入框仅支持query部分中包含的任何内容,因此如果您输入此内容,它将起作用:

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

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

如果您查看完整查询DSL,您会看到有几个部分:queryaggsfromsize,{{1} },_source等。在“发现”窗格中,您应该只指定highlight部分中的内容,而不是其他内容。