2017-02-16 6 views
0

に私は条件OR anothor条件に合致しないことを引き起こす除外フィルタで検索をしたいと思うはずです行いますelasticsearch:フィルタ

私はフィルタに必要がありますが、それが失敗した実行しようとしました:

POST /my_index/_search 
{ 
    "query": { 
    "bool": { 
     "filter": [ 
     { 
      "should": [ 
      { 
       "match": { 
       "type1_title": "searched match" 
       } 
      }, 
      { 
       "match": { 
       "type2_title": "searched match" 
       } 
      } 
      ] 
     } 
     ] 
    } 
    } 
} 

そのエラーが発生します:私たちは、フィルターにできるかどう

"error": { 
    "root_cause": [ 
     { 
     "type": "parsing_exception", 
     "reason": "[should] query malformed, no start_object after query name", 
     "line": 9, 
     "col": 21 
     } 
    ], 
    "type": "parsing_exception", 
    "reason": "[should] query malformed, no start_object after query name", 
    "line": 9, 
    "col": 21 
    }, 
    "status": 400 
} 

あなたは知っていますか?

答えて

1

あなたが本当にbool/filter/should構造を維持したい場合は、単にbool/shouldfilterの必要は、あなたがこのようにそれを行う必要があり、ここで

POST /my_index/_search 
{ 
    "query": { 
    "bool": { 
      "minimum_should_match": 1, 
      "should": [ 
      { 
       "match": { 
       "type1_title": "searched match" 
       } 
      }, 
      { 
       "match": { 
       "type2_title": "searched match" 
       } 
      } 
      ] 
    } 
    } 
} 

ありませんではない理由:

POST /my_index/_search 
{ 
    "query": { 
    "bool": { 
     "filter": [ 
     { 
     "bool": { 
      "should": [ 
      { 
       "match": { 
       "type1_title": "searched match" 
       } 
      }, 
      { 
       "match": { 
       "type2_title": "searched match" 
       } 
      } 
      ] 
     } 
     } 
     ] 
    } 
    } 
} 
+0

は、あなたにありがとう右ですが、私は単純な例を挙げました。私は本当にやりたいと思っています。それが機能であるかどうか知っていますか? –

+1

'should'はORフィルタです – Val

+0

本当にフィルタを使いたい場合は私の回答を更新しました – Val

関連する問題