2016-04-14 82 views
0

可以在Elasticsearch多索引查询上编写条件筛选器吗?使用ElasticSearch跨多个索引进行筛选

我正在查看过滤器脚本,但如果文档索引是我可以检查的变量,我无法在文档中的任何地方看到?

我现有的查询看起来像这样,注意过滤器脚本不起作用 - 但我认为这是我需要做我的查询的地方。

{ 
    "index": "tweets,articles,animals,buildings", 
    "type": "item", 
    "body": { 
     "query": { 
      "multi_match": { 
       "query": "cat", 
       "type": "phrase_prefix", 
       "fields": [ 
        "label", 
        "body" 
       ] 
      } 
     }, 
     "filter": { 
      "script": { 
       "script": "if (_index == \"animals\") {return true;} else {return false} 
      } 
     }, 
     "from": 0, 
     "size": 8 
    } 
} 

很明显,我想在这个过滤器中做更多的事情,而不仅仅是从某个索引中排除项目,这只是一个例子。

+0

elasticsearch的哪个版本? – keety

+0

2.1.1目前,但有可能升级,如果需要? – HelloPablo

回答

3

您应该可以合并几个indices query来解决此任务。

+0

'indices query'在5.0中不推荐使用。但是你可以像'_index'字段一样过滤其他字段。 '{“term”:{“_index”:“动物”}}' –