Search code examples
elasticsearchnest

ElasticSearch NEST multi match returns all result


I have this C# code which is expected to match 2 fields using multi-match Elastic Search type. I am using NEST package.

var response = await _elasticClient.SearchAsync<FileDocument>(
     s => s.Query(q => q.MultiMatch(c => c
     .Fields(f => f.Field(p => p.FileName).Field(query))
     .Fields(f => f.Field(p => p.Metadata).Field(query))
     )));

Problem is no matter what text I passed in, it returns all the result. Anything I miss out?


Solution

  • Solved after adding .Query(query)

    var response = await _elasticClient.SearchAsync<FileDocument>(
                     s => s.Query(q => q.MultiMatch(c => c
                     .Fields(f => f.Field(p => p.FileName).Field(p=>p.Metadata))
                     .Query(query)
                     ))
                     );
    

    Reference - https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/multi-match-usage.html