Skip to main content

Multi Match Query

The MultiMatch query builds on the match query to allow multi-field queries.

In order to use the MultiMatch query import the following:

import zio.elasticsearch.query.MultiMatchQuery
import zio.elasticsearch.ElasticQuery._

You can create a MultiMatch query without specifying fields using the multiMatch method this way:

val query: MultiMatchQuery = multiMatch(value = "test")

If you want to change the fields that will be searched, you can use the fields method:

val query: MultiMatchQuery = multiMatch(value = "test").fields("stringField1", "stringField2")

If you want to change the fields that will be searched, you can use the fields method with the type-safe parameters this way:

val query: MultiMatchQuery = multiMatch(value = "test").fields(Document.stringField1, Document.stringField2)

If you want to change the boost, you can use the boost method:

val queryWithBoost: MultiMatchQuery = multiMatch(value = "test").fields(Document.stringField1, Document.stringField2).boost(2.2)

If you want to change the minimum_should_match, you can use the minimumShouldMatch method:

val queryWithMinimumShouldMatch: MultiMatchQuery = multiMatch(value = "test").fields(Document.stringField1, Document.stringField2).minimumShouldMatch(2)

If you want to change the type, you can use the matchingType method:

import zio.elasticsearch.query.MultiMatchType._

val queryWithType: MultiMatchQuery = multiMatch(value = "test").fields(Document.stringField1, Document.stringField2).matchingType(MostFields)

You can find more information about MultiMatch query here.