在 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,您会看到有几个部分:query
、aggs
、from
、size
、_source
、highlight
等。在“发现”窗格中,您应该只指定进入 query
部分的内容,没有其他内容。
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,您会看到有几个部分:query
、aggs
、from
、size
、_source
、highlight
等。在“发现”窗格中,您应该只指定进入 query
部分的内容,没有其他内容。