Skip to main content

Simple Query String Query

The SimpleQueryString query provides a simple query syntax for performing searches across multiple fields.

To use the SimpleQueryString query, import the following:

import zio.elasticsearch.query.SimpleQueryStringQuery
import zio.elasticsearch.ElasticQuery._

You can create a SimpleQueryString query without specifying fields using the simpleQueryString method:

val query: SimpleQueryStringQuery[Any] = simpleQueryString(query = "name")

If you want to specify which fields should be searched, you can use the fields method:

val query: SimpleQueryStringQuery[Document] =
simpleQueryString(query = "name").fields("stringField1", "stringField2")

To define fields in a type-safe manner, use the overloaded fields method with field definitions from your document:

val query: SimpleQueryStringQuery[Document] =
simpleQueryString(query = "name").fields(Document.stringField1, Document.stringField2)

Alternatively, you can pass a Chunk of fields:

val query: SimpleQueryStringQuery[Document] =
simpleQueryString(query = "name").fields(Chunk(Document.stringField1, Document.stringField2))

If you want to define the minimum_should_match parameter, use the minimumShouldMatch method:

val query: SimpleQueryStringQuery[Any] =
simpleQueryString(query = "name").minimumShouldMatch(2)

You can also construct the query manually with all parameters:

val query: SimpleQueryStringQuery[Document] =
SimpleQueryString(
query = "name",
fields = Chunk("stringField"),
minimumShouldMatch = Some(2)
)