---
title: "Explore"
description: "Explore function reference for discovering data relationships when single inference modules are enabled."
url: https://docs.weaviate.io/weaviate/api/graphql/explore
---

# Explore

> [!WARNING]
>
> **The GraphQL API is deprecated**
>
> Weaviate Cloud switches off the GraphQL API on **May 1, 2027**. Clusters that have not used GraphQL in the last 30 days have it switched off from December 1, 2026. New Weaviate Cloud clusters are already created with GraphQL disabled. Self-hosted Weaviate keeps GraphQL until at least May 1, 2027. The first minor release after that date disables it by default, and you can switch it back on. It is removed in a later release.
>
> Use a [client library](https://docs.weaviate.io/weaviate/client-libraries), the [web client](https://docs.weaviate.io/weaviate/client-libraries/typescript/web-client) or the REST Search API instead. See [Migrating from the GraphQL API](https://docs.weaviate.io/weaviate/api/graphql/migration).

> [!NOTE]
>
> **Vector spaces and Explore**
>
> The `Explore` function is disabled where multiple inference (e.g. `text2vec-xxx`) modules are enabled.
>
> As a result, `Explore` is not available on [Weaviate Cloud (WCD)](https://docs.weaviate.io/go/console?utm_content=api) as its clusters are pre-configured with multiple inference modules for AWS, Cohere, Google, OpenAI and so on.

Use `Explore` to perform vector searches across multiple collections. Note that `Explore` is currently not available in the gRPC API.

### Requirements

For `Explore`:

- The Weaviate instance to be configured with a maximum of one vectorizer (e.g. `text2vec-transformers`, `text2vec-openai`) module.
- Each `Explore` query can only be a vector search using `nearText` or `nearVector`.

## `Explore` queries

### `Explore` structure and syntax

The `Explore` function has the following syntax:

```graphql
{
  Explore (
    limit: <Int>,              # The maximum amount of objects to return
    nearText: {                # Either this or 'nearVector' is required
      concepts: [<String>]!,   # Required - An array of search items. If the text2vec-contextionary is the vectorization module, the concepts should be present in the Contextionary.
      certainty: <Float>,      # Minimal level of certainty, computed by normalized distance
      moveTo: {                # Optional - Giving directions to the search
        concepts: [<String>]!, # List of search items
        force: <Float>!        # The force to apply for a particular movement. Must be between 0 (no movement) and 1 (largest possible movement).
      },
      moveAwayFrom: {          # Optional - Giving directions to the search
        concepts: [<String>]!, # List of search items
        force: <Float>!        # The force to apply for a particular movement. Must be between 0 (no movement) and 1 (largest possible movement).
      }
    },
    nearVector: {              # Either this or 'nearText' is required
      vector: [<Float>]!,      # Required - An array of search items, which length should match the vector space
      certainty: <Float>       # Minimal level of certainty, computed by normalized distance
    }
  ) {
    beacon
    certainty                  # certainty value based on a normalized distance calculation
    className
  }
}
```

An example query:

**Go (v5)**

```go
package main

import (
  "context"
  "fmt"

  "github.com/weaviate/weaviate-go-client/v5/weaviate"
  "github.com/weaviate/weaviate-go-client/v5/weaviate/graphql"
)

func main() {
  cfg := weaviate.Config{
    Host:   "localhost:8080",
    Scheme: "http",
  }
  client, err := weaviate.NewClient(cfg)
  if err != nil {
    panic(err)
  }

  vector := []float32{-0.36840257, 0.13973749, -0.28994447, -0.18607682, 0.20019795, 0.15541431, -0.42353877, 0.30262852, 0.2724561, 0.07069917, 0.4877447, 0.038771532, 0.64523, -0.15907241, -0.3413626, -0.026682584, -0.63310874, -0.33411884, 0.082939014, 0.30305764, 0.045918174, -0.21439327, -0.5005205, 0.6210859, -0.2729049, -0.51221114, 0.09680918, 0.094923325, -0.15688285, -0.07325482, 0.6588305, 0.0523736, -0.14173415, -0.27428055, 0.25526586, 0.057506185, -0.3103442, 0.028601522, 0.124522656, 0.66984487, 0.12160647, -0.5090515, -0.540393, -0.39546522, -0.2201204, 0.34625968, -0.21068871, 0.21132985, 0.048714135, 0.09043683, 0.3176081, -0.056684002, -0.12117501, -0.6591976, -0.26731065, 0.42615625, 0.33333477, -0.3240578, -0.18771006, 0.2328068, -0.17239179, -0.33583146, -0.6556605, -0.10608161, -0.5135395, -0.25123677, -0.23004892, 0.7036331, 0.04456794, 0.41253626, 0.27872285, -0.28226635, 0.11927197, -0.4677766, 0.4343466, -0.17538455, 0.10621233, 0.95815116, 0.23587844, -0.006406698, -0.10512518, -1.1125883, -0.37921682, 0.040789194, 0.676718, 0.3369762, 0.040712647, 0.580487, 0.20063736, -0.021220192, -0.09071747, -0.0023735985, 0.30007777, -0.039925132, 0.4035474, -0.2518212, -0.17846306, 0.12371392, -0.0703354, -0.3752431, -0.652917, 0.5952828, 1.3426708, -0.08167235, -0.38515738, 0.058423538, -0.08100355, -0.192886, 0.3745164, -0.23291737, 0.33326542, -0.6019264, -0.42822492, -0.6524583, -0.15210791, -0.5073593, 0.022548754, -0.058033653, -0.47369233, -0.30890635, 0.6338296, 0.0017854869, 0.1954949, 0.99348027, -0.26558784, -0.058124136, 1.149388, 0.02915948, 0.013422121, 0.25484946, -0.030017598, -0.23879935, 0.053123385, -0.36463016, -0.0024245526, 0.1202083, -0.45966506, -0.34140104, -0.08484162, -0.03537422, -0.2817959, 0.25044164, -0.5060605, 0.1252808, -0.032539487, 0.110069446, -0.20679846, -0.46421885, -0.4141739, 0.26994973, -0.070687145, 0.16862138, -0.20162229, 0.22199251, -0.2771402, 0.23653336, 0.16585203, -0.08286354, -0.15343396, 0.23893964, -0.7453282, -0.16549355, -0.1947069, 0.46136436, 0.22064126, 0.28654936, -0.038697664, 0.037633028, -0.80988157, 0.5094175, -0.0920082, 0.25405347, -0.64169943, 0.43366328, -0.2999211, -0.4090591, 0.11957859, 0.00803617, -0.0433745, 0.12818244, 0.28464508, -0.31760025, 0.16558012, -0.33553946, -0.3943465, 0.59569097, -0.6524206, 0.3683173, -0.60456693, 0.2046492, 0.46010277, 0.24695799, 0.2946015, 0.11376746, -0.027988048, 0.03749422, -0.16577742, 0.23407385, -0.0231737, -0.023245076, 0.08752677, 0.2299883, 0.35467404, 0.046193745, -0.39828986, 0.21079691, 0.38396686, -0.0018698421, 0.16047359, -0.057517264, -0.203534, 0.23438136, -0.84250915, 0.22371331, 0.0058325706, 0.30733636, 0.19518353, -0.108008966, 0.6509316, 0.070131645, -0.24023099, 0.28779706, 0.2326336, 0.07004021, -0.45955566, 0.20426086, -0.37472793, -0.049604423, 0.4537271, 0.6133582, -1.0527759, -0.5472505, 0.15193434, 0.5296606, -0.11560251, 0.07279209, 0.40557706, 0.2505283, 0.24490519, 0.017602902, -0.004647707, 0.16608049, 0.12576887, 0.118216865, 0.4403996, 0.39552462, -0.22196701, -0.061155193, 0.03693534, -0.4022908, 0.3842317, -0.0831345, 0.01930883, 0.3446575, -0.2167439, -0.23994556, -0.09370326, -0.3671856, 0.044011243, 0.017895095, -0.019855855, -0.16416992, 0.17858285, 0.31287143, 0.38368022, -0.006513525, 0.45780763, -0.23027879, 0.108570844, -0.4449492, -0.035763215, 0.03818417, 0.040017277, -0.17022872, -0.2622464, 0.65610534, 0.16720143, 0.2515769, -0.23535803, 0.62484455, 0.16771325, -0.62404263, 0.19176348, -0.72786695, 0.18485649, -0.30914405, -0.3230534, -0.24064465, 0.28841522, 0.39792386, 0.15618932, 0.03928854, 0.18277727, -0.101632096, 0.1868196, -0.33366352, 0.086561844, 0.48557812, -0.6198209, -0.07978742}

  withNearVector := client.GraphQL().NearVectorArgBuilder().
    WithVector(vector)

  result, err := client.GraphQL().Explore().
    WithFields(
      graphql.Beacon,
      graphql.Certainty,  # only supported if distance==cosine
      graphql.Distance    # always supported
      graphql.ClassName).
    WithNearVector(withNearVector).
    Do(context.Background())

  if err != nil {
    panic(err)
  }
  fmt.Printf("%v", result)
}
```

**Curl**

```bash
# Note: `certainty` is only supported if distance==cosine. `distance` is always supported.
echo '{
  "query": "{
    Explore (
      nearVector: {
        vector: [-0.36840257, 0.13973749, -0.28994447, ...]
      }
    ) {
      beacon
      certainty
      distance
      className
    }
  }"
}' | curl \
    -X POST \
    -H 'Content-Type: application/json' \
    -d @- \
    http://localhost:8080/v1/graphql
```

*This example's 300-number vector is shortened to its first 3 values. The HTML page has the full vector.*

**GraphQL**

```graphql
{
  Explore (
    nearVector: {
      vector: [-0.36840257, 0.13973749, -0.28994447, ...]
    }
  ) {
    beacon
    certainty  # only supported if distance==cosine
    distance   # always supported
    className
  }
}
```

*This example's 300-number vector is shortened to its first 3 values. The HTML page has the full vector.*

The result might look like this:

```json
{
  "data": {
    "Explore": [
      {
        "beacon": "weaviate://localhost/7e9b9ffe-e645-302d-9d94-517670623b35",
        "certainty": 0.975523,
        "className": "Publication"
      }
    ]
  },
  "errors": null
}
```

### Search operators

The `nearText` and `nearVector` operators work in `Explore` as they do in other queries. See [search operators](https://docs.weaviate.io/weaviate/api/graphql/search-operators) for more information.

### Filters

`Explore` queries can be combined with filters. See [filters](https://docs.weaviate.io/weaviate/api/graphql/filters) for more information.

### Pagination

Pagination (i.e. `limit` with `offset`) is not possible in `Explore` queries.

#### Moving

Because pagination is not possible in multidimensional storage, we recommend using `moveTo` and `moveAwayFrom` if further query refinement is sought. They work as they do in other queries. See [search operators#nearText](https://docs.weaviate.io/weaviate/api/graphql/search-operators#neartext) for more information.
