# Experimental features overview
Source: https://www.meilisearch.com/docs/learn/resources/experimental_features_overview

This article covers how to activate activate and configure Meilisearch experimental features.

Meilisearch periodically introduces new experimental features. Experimental features are not always ready for production, but offer functionality that might benefit some users.

An experimental feature's API can change significantly and become incompatible between releases. Keep this in mind when using experimental features in a production environment.

Meilisearch makes experimental features available expecting they will become stable in a future release, but this is not guaranteed.

## Activating experimental features

Experimental features fall into two groups based on how they are activated or deactivated:

1. Those that are activated at launch with a command-line flag or environment variable
2. Those that are activated with the [`/experimental-features` API route](/reference/api/experimental_features).

## Activating experimental features at launch

Some experimental features can be [activated at launch](/learn/self_hosted/configure_meilisearch_at_launch), for example with a command-line flag:

```sh theme={null}
./meilisearch --experimental-enable-metrics
```

Flags and environment variables for experimental features are not included in the [regular configuration options list](/learn/self_hosted/configure_meilisearch_at_launch#all-instance-options). Instead, consult the specific documentation page for the feature you are interested in, which can be found in the experimental section.

Command-line flags for experimental features are always prefixed with `--experimental`. Environment variables for experimental features are always prefixed with `MEILI_EXPERIMENTAL`.

Activating or deactivating experimental features this way requires you to relaunch Meilisearch.

### Activating experimental features during runtime

Some experimental features can be activated via an HTTP call using the [`/experimental-features` API route](/reference/api/experimental_features):

<CodeGroup>
  ```bash cURL theme={null}
  curl \
    -X PATCH 'MEILISEARCH_URL/experimental-features/' \
    -H 'Content-Type: application/json'  \
    --data-binary '{
      "metrics": true
    }'
  ```

  ```ruby Ruby theme={null}
  client.update_experimental_features(metrics: true)
  ```

  ```go Go theme={null}
  client.ExperimentalFeatures().SetMetrics(true).Update()
  ```

  ```rust Rust theme={null}
  let client = Client::new("http://localhost:7700", Some("apiKey"));
  let features = ExperimentalFeatures::new(&client);
  features.set_metrics(true)
  let res = features
    .update()
    .await
    .unwrap();
  ```
</CodeGroup>

Activating or deactivating experimental features this way does not require you to relaunch Meilisearch.

## Current experimental features

| Name                                                                                                            | Description                                                                | How to configure                            |
| --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------- |
| [Limit task batch size](/learn/self_hosted/configure_meilisearch_at_launch)                                     | Limits number of tasks processed in a single batch                         | CLI flag or environment variable            |
| [Log customization](/reference/api/logs)                                                                        | Customize log output and set up log streams                                | CLI flag or environment variable, API route |
| [Metrics API](/reference/api/metrics)                                                                           | Exposes Prometheus-compatible analytics data                               | CLI flag or environment variable, API route |
| [Reduce indexing memory usage](/learn/self_hosted/configure_meilisearch_at_launch)                              | Optimizes indexing performance                                             | CLI flag or environment variable            |
| [Replication parameters](/learn/self_hosted/configure_meilisearch_at_launch)                                    | Alters task processing for clustering compatibility                        | CLI flag or environment variable            |
| [Search queue size](/learn/self_hosted/configure_meilisearch_at_launch)                                         | Configure maximum number of concurrent search requests                     | CLI flag or environment variable            |
| [`CONTAINS` filter operator](/learn/filtering_and_sorting/filter_expression_reference#contains)                 | Enables usage of `CONTAINS` with the `filter` search parameter             | API route                                   |
| [Edit documents with function](/reference/api/documents#update-documents-with-function)                         | Use a RHAI function to edit documents directly in the Meilisearch database | API route                                   |
| [`/network` route](/reference/api/network)                                                                      | Enable `/network` route                                                    | API route                                   |
| [Dumpless upgrade](/learn/self_hosted/configure_meilisearch_at_launch#dumpless-upgrade)                         | Upgrade Meilisearch without generating a dump                              | API route                                   |
| [Composite embedders](/reference/api/settings#composite-embedders)                                              | Enable composite embedders                                                 | API route                                   |
| [Search query embedding cache](/learn/self_hosted/configure_meilisearch_at_launch#search-query-embedding-cache) | Enable a cache for search query embeddings                                 | CLI flag or environment variable            |
| [Uncompressed snapshots](/learn/self_hosted/configure_meilisearch_at_launch#uncompressed-snapshots)             | Disable snapshot compaction                                                | CLI flag or environment variable            |
| [Maximum batch payload size](/learn/self_hosted/configure_meilisearch_at_launch#maximum-batch-payload-size)     | Limit batch payload size                                                   | CLI flag or environment variable            |
| [Multimodal search](/reference/api/settings)                                                                    | Enable multimodal search                                                   | API route                                   |
| [Disable new indexer](/learn/self_hosted/configure_meilisearch_at_launch)                                       | Use previous settings indexer                                              | CLI flag or environment variable            |
| [Experimental vector store](/reference/api/settings)                                                            | Enables index setting to use experimental vector store                     | API route                                   |
| [Search personalization](/learn/personalization/making_personalized_search_queries)                             | Enables search personalization                                             | CLI flag or environment variable            |