title: Elasticsearch match with filter
body: <p>I need a query that makes partial match on a string and filter outside documents that have a specific value for a field.</p>
  
  <p>I tried this payload for es:</p>
  
  <pre><code>    payload = {
      search_request: {
        _source: [ 'name', 'source','pg_id' ],
        query: {
          match: { name: query_string }
          bool: {
            must_not: {
              term: { "source.source": source_value }
            }
          }
        },
        size: 100
      },
      query_hint: query,
      algorithm: algorithm,
      field_mapping: { title: ["_source.name", "_source.source"]}
    }
  </code></pre>
  
  <p>But ES trows this error:</p>
  
  <pre><code>    {  
  :error=&gt;   {  
  :root_cause=&gt;      [  
           {  
  :type=&gt;"parse_exception",
  :reason=&gt; 
             "failed to parse search source. expected field name but got            [  
                 START_OBJECT
              ]            "}], 
         :type=&gt;"            search_phase_execution_exception",
  :reason=&gt;"all shards failed",
  :phase=&gt;"query",
  :grouped=&gt;true,
  :failed_shards=&gt;            [  
                 {  
  :shard=&gt;0,
  :index=&gt;"articles",
  :node=&gt;"3BUP3eN_TB2-zExigd_k2g",
  :reason=&gt;                  {  
  :type=&gt;"parse_exception",
  :reason=&gt; 
               "failed to parse search source. expected field name but got                     [  
                          START_OBJECT
                       ]                     "
                    }
                 }
              ]
           },
  :status=&gt;400
        }
  </code></pre>
  
  <p>I am using Elasticsearch 2.4</p>