Elasticsearch查询 - 并且不返回值(当我知道它应该时)

时间:2016-07-31 10:56:37

标签: search elasticsearch kibana querydsl

我尝试使用我在Kibana3仪表板上的精确过滤从elasticsearch获取数据,并且由于某种原因无法使其有意义。

这就是我在Kibana上的内容(返回文档): enter image description here

这是我尝试针对ES运行并且没有结果的查询:

{
"query": {
    "filtered": {
        "query": {
            "match_all": {}
        },
        "filter": {
            "bool" : {
                "must" : [
                    { "term" : { "domain_name.raw": "foo.bar" } },
                    { "term" : { "method": "get" } }
                ],
                "should" : {
                    "or" : [
                            {
                                "term" : { "pathname.raw" : "/xxxxx" }
                            },
                            {
                                "term" : { "pathname.raw" : "/yyyyy" }
                            },
                            {
                                "term" : { "pathname.raw" : "/zzzzz" }
                            }
                    ]
                }
            }
        }
    }
}

}

我已经开了几个小时,但却无法让它发挥作用。 当我删除其中一个必须条款(domain_name或方法)时,我会得到结果。但那时我并不完全是我需要的过滤...... 我知道哪里出错了?

1 个答案:

答案 0 :(得分:0)

看起来你的语法有些偏差,使用<div id="wl-container"></div> <script> (function (s, k, y) { var l = s.createElement("script"); l.src = k + "/js/client.js"; l.async = 1; l.onload = function () { y({ serviceBase: k }); }; var t = s.getElementsByTagName("head")[0]; t.appendChild(l); })(document, "//whitelabel.api.skyscanner.net", myCallback); function myCallback(options) { var whitelabel = new Skyscanner.Flights.Whitelabel({ serviceBase: options.serviceBase, customerId: "testwl46" }); whitelabel.create("wl-container", { market: "UK", locale: "en-GB", currency: "GBP", originPlace: "EDI", destinationPlace: "LON", outboundDate: "2014-03-10", inboundDate: "2014-04-10" }); } </script> 时你不需要使用should,试试这个:

我尝试使用我在Kibana3仪表板上的精确过滤从elasticsearch获取数据,并且出于某种原因无法使其有意义。

这就是我在Kibana(返回文档)上的内容:kibana过滤器

这是我尝试针对ES运行并且没有结果的查询:

or