2016-04-14 5 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

5.0では 'indices query'は非推奨です。しかし、他のフィールドと同様に、 '_index'フィールドでフィルタリングすることができます。 '{" term ":{" _index ":" animals "}}' –

関連する問題