SearchSpec

sealed class SearchSpec

A search specification ("spec" for short) that tells the server what to look for during a Full-Text Search.

Generally speaking, there are two different types of spec:

  1. A non-vector query represented by a SearchQuery.

  2. A vector query represented by a VectorQuery.

Create instances of either type by calling SearchSpec companion factory methods.

To create a mixed-mode search that combines a vector search with a non-vector search, use SearchSpec.mixedMode.

Samples

// A search specification for a `match` query.
val spec: SearchQuery = SearchSpec.match("pizza", field = "description")
// A search specification for a single vector query.
val spec: VectorQuery = SearchSpec.vector("reviews", floatArray)
// A search specification that ORs together multiple vector queries.
val spec = SearchSpec.anyOf(
    SearchSpec.vector("review", floatArray),
    SearchSpec.vector("review", otherFloatArray),
)
// A search specification that ANDs together multiple vector queries.
val spec = SearchSpec.allOf(
    SearchSpec.vector("review", floatArray),
    SearchSpec.vector("review", otherFloatArray),
)
// A search specification that ORs a non-vector `match` query
// with a vector query.
val spec = SearchSpec.mixedMode(
    SearchSpec.match("pizza"),
    SearchSpec.vector("review", floatArray),
)

Inheritors

Types

Link copied to clipboard
object Companion