在Kibana中,我创建了2个过滤器: raw.browserJs.isWebDriver为true,而raw.browserJs.isWebDriver为true。为什么两个的编辑查询DSL都相同:
{
"query": {
"match": {
"raw.browserJs.isWebDriver": {
"query": true,
"type": "phrase"
}
}
}
}
另外,我如何添加条件以进行一个大型DSL查询:
{
"query": {
"match": {
"appName": {
"query": "temp",
"type": "phrase"
}
}
}
}
答案 0 :(得分:0)
在Kibana中显示的查询DSL不是发送给elasticsearch的实际查询。添加了所选时间段的范围过滤器,并对过滤器求反。您可以在浏览器中发送的基础请求中看到实际查询。
您过滤掉raw.browserJs.isWebDriver不正确的地方,结果将是这样:
{
"query": {
"bool": {
"must_not": [
{
"match_phrase": {
"raw.browserJs.isWebDriver": true
}
}
]
}
}
}
您可以在一个DSL查询和bool查询中组合多个条件。(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html)
以下查询将在您的示例中起作用:
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"raw.browserJs.isWebDriver": true
}
},
{
"match_phrase": {
"appName": "temp"
}
}
]
}
}
}