2016-07-31 167 views
0

我尝试从弹性搜索中获取数据与我在Kibana3仪表板上进行的确切过滤,并且出于某种原因无法使其有意义。Elasticsearch查询 - 并没有返回值(当我知道它应该)

这就是我对Kibana(返回文档): kibana filters

,这是我尝试对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或方法)时,我确实得到了结果。但后来我不完全是我需要的过滤... 任何想法,我哪里出错了?

回答

0

好像你的语法是有点过了,使用should当你不需要使用or,试试这个:

我试图让与精确过滤从elasticsearch数据,我有一个Kibana3仪表板,并由于某种原因不能使它有意义。

这就是我对Kibana(返回文档):kibana过滤器

,这是我尝试对ES运行并没有得到结果的查询:

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