From ccc062ea5b77125b2d75731ca1e2a70caa9beed8 Mon Sep 17 00:00:00 2001 From: CaroFG Date: Wed, 15 Oct 2025 12:37:27 +0200 Subject: [PATCH 1/6] Add guide on optimizing indexing performance --- .../optimize_indexing_performance.mdx | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 learn/indexing/optimize_indexing_performance.mdx diff --git a/learn/indexing/optimize_indexing_performance.mdx b/learn/indexing/optimize_indexing_performance.mdx new file mode 100644 index 0000000000..949ef45922 --- /dev/null +++ b/learn/indexing/optimize_indexing_performance.mdx @@ -0,0 +1,101 @@ +--- +title: Optimize indexing performance by analyzing batch statistics +description: Learn how to analyze the `progressTrace` to identify and resolve indexing bottlenecks in Meilisearch. +--- + +# Optimize indexing performance by analyzing batch statistics + +Indexing performance can vary significantly depending on your dataset, index settings, and hardware. The [batch object](/reference/api/batches) provides information about the progress of asynchronous indexing operations. + +The `progressTrace` field within the batch object offers a detailed breakdown of where time is spent during the indexing process. By analyzing this data, you can identify bottlenecks and adjust configuration settings to improve indexing speed. + +## Understanding the `progressTrace` + +The `progressTrace` is a hierarchical trace showing each phase of indexing and how long it took. +Each entry follows the structure: + +```json +"processing tasks > indexing > extracting word proximity": "33.71s" +``` + +This means: + +- The step occurred during **indexing**. +- The subtask was **extracting word proximity**. +- It took **33.71 seconds**. + +Your goal is to focus on the **longest-running steps** and understand which index settings or data characteristics influence them. + +## Key phases and how to optimize them + +### Document processing + +| Trace key | Description | Optimization | +|------------|--------------|--------------| +| `computing document changes`, `extracting documents` | Meilisearch compares incoming documents to existing ones. | No direct optimization possible. The duration scales with the number and size of incoming documents.| + +### Filterable attributes + +| Trace key | Description | Optimization | +|------------|--------------|--------------| +| `extracting facets`, `merging facet caches` | Extracts and merges filterable attributes. | Keep the number of [**filterable attributes**](/reference/api/settings#filterable-attributes) to a minimum. | + +### Searchable attributes + +| Trace key | Description | Optimization | +|------------|--------------|--------------| +| `extracting words`, `merging word caches` | Tokenizes text and builds the inverted index. | - Ensure the [**searchable attributes**](/reference/api/settings#searchable-attributes) list includes only the fields you want to be checked for query word matches. | + +### Proximity precision + +| Trace key | Description | Optimization | +|------------|--------------|--------------| +| `extracting word proximity`, `merging word proximity` | Builds the data structures for phrase and attribute ranking. | Lower the precision of this operation by setting [proximity precision](/reference/api/settings#proximity-precision) to `byAttribute` instead of the default `byWord`| + +### Disk I/O and hardware bottlenecks + +| Trace key | Description | Optimization | +|------------|--------------|--------------| +| `waiting for database writes` | Time spent writing data to disk. | No direct optimization possible. Either the disk is slow, either the quantity of data to write is big. Avoid HDDs (Hard Disk Drives). | +| `waiting for extractors` | Time spent waiting for CPU-bound extraction. | No direct optimization possible. Indicates a CPU bottleneck. Use more cores or scale horizontally with [sharding](/learn/advanced/sharding). | + +### Facets and filterable attributes + +| Trace key | Description | Optimization | +|------------|--------------|--------------| +| `post processing facets > strings bulk` / `numbers bulk` | Processes equality or comparison filters. | - Disable unused [**filter features**](/reference/api/settings#features), such as comparison operators on string values.
- Keep [**sortable attributes**](reference/api/settings#sortable-attributes) to the minimum required. | +| `post processing facets > facet search` | Builds structures for the [facet search API](/reference/api/facet_search). | If you don’t use the facet search API, [disable it](/reference/api/settings#update-facet-search-settings).| + +### Embeddings + +| Trace key | Description | Optimization | +|------------|--------------|--------------| +| `writing embeddings to database` | Time spent saving vector embeddings. | - Use smaller embedding vectors when possible.
- You can avoid recomputing embeddings on document update by [disabling embedding regeneration](/reference/api/documents#vectors).
- Consider enabling [binary quantization](/reference/api/settings#binaryquantized) for your embedders. | + +### Word prefixes and post-processing + +| Trace key | Description | Optimization | +|------------|--------------|--------------| +| `post processing words > word prefix *` | Builds prefix data for autocomplete. Allows to match documents that begin with a specific query term, instead of only exact matches.| Disable [**prefix search**](/reference/api/settings#prefix-search) (`prefixSearch: disabled`) if not required.
Note that this can severely impact search result relevancy. | +| `post processing words > word fst` | Builds the word FST (finite state transducer). | No direct action possible, as it depends on the number of different words in the database. Fewer searchable words can improve speed. | + +## Example analysis + +If you see: + +```json +"processing tasks > indexing > post processing facets > facet search": "1763.06s" +``` + +The [facet search feature](/learn/filtering_and_sorting/search_with_facet_filters#searching-facet-values) is consuming significant time. If your application doesn’t use it, disable it: + +``` +client.index('INDEX_NAME').updateFacetSearch(false); +``` + +## Learn more + +- [Indexing best practices](/learn/indexing/indexing_best_practices) +- [Impact of RAM and multi-threading on indexing performance +](/learn/indexing/ram_multithreading_performance) +- [Configuring index settings](/learn/configuration/configuring_index_settings) From 0f8ad041827aa9eb7acdb7e5284f378d8d83e6bc Mon Sep 17 00:00:00 2001 From: CaroFG Date: Wed, 15 Oct 2025 14:35:16 +0200 Subject: [PATCH 2/6] Add guide to sidebar --- docs.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs.json b/docs.json index 9d643be49f..ba8c8b6b09 100644 --- a/docs.json +++ b/docs.json @@ -288,7 +288,8 @@ "learn/indexing/indexing_best_practices", "learn/indexing/ram_multithreading_performance", "learn/indexing/tokenization", - "learn/indexing/multilingual-datasets" + "learn/indexing/multilingual-datasets", + "learn/indexing/optimize_indexing_performance" ] }, { From c7efc245bee8a0a50a0d6ca2adf53cae4c843fdb Mon Sep 17 00:00:00 2001 From: CaroFG <48251481+CaroFG@users.noreply.github.com> Date: Thu, 23 Oct 2025 14:51:28 +0200 Subject: [PATCH 3/6] Apply suggestions from code review Co-authored-by: gui machiavelli --- .../optimize_indexing_performance.mdx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/learn/indexing/optimize_indexing_performance.mdx b/learn/indexing/optimize_indexing_performance.mdx index 949ef45922..ee1b3a7a75 100644 --- a/learn/indexing/optimize_indexing_performance.mdx +++ b/learn/indexing/optimize_indexing_performance.mdx @@ -1,5 +1,5 @@ --- -title: Optimize indexing performance by analyzing batch statistics +title: Optimize indexing performance with batch statistics description: Learn how to analyze the `progressTrace` to identify and resolve indexing bottlenecks in Meilisearch. --- @@ -7,11 +7,11 @@ description: Learn how to analyze the `progressTrace` to identify and resolve in Indexing performance can vary significantly depending on your dataset, index settings, and hardware. The [batch object](/reference/api/batches) provides information about the progress of asynchronous indexing operations. -The `progressTrace` field within the batch object offers a detailed breakdown of where time is spent during the indexing process. By analyzing this data, you can identify bottlenecks and adjust configuration settings to improve indexing speed. +The `progressTrace` field within the batch object offers a detailed breakdown of where time is spent during the indexing process. Use this data to identify bottlenecks and improve indexing speed. ## Understanding the `progressTrace` -The `progressTrace` is a hierarchical trace showing each phase of indexing and how long it took. +`progressTrace` is a hierarchical trace showing each phase of indexing and how long it took. Each entry follows the structure: ```json @@ -24,7 +24,7 @@ This means: - The subtask was **extracting word proximity**. - It took **33.71 seconds**. -Your goal is to focus on the **longest-running steps** and understand which index settings or data characteristics influence them. +Focus on the **longest-running steps** and investigate which index settings or data characteristics influence them. ## Key phases and how to optimize them @@ -32,7 +32,7 @@ Your goal is to focus on the **longest-running steps** and understand which inde | Trace key | Description | Optimization | |------------|--------------|--------------| -| `computing document changes`, `extracting documents` | Meilisearch compares incoming documents to existing ones. | No direct optimization possible. The duration scales with the number and size of incoming documents.| +| `computing document changes`, `extracting documents` | Meilisearch compares incoming documents to existing ones. | No direct optimization possible. Process duration scales with the number and size of incoming documents.| ### Filterable attributes @@ -44,40 +44,40 @@ Your goal is to focus on the **longest-running steps** and understand which inde | Trace key | Description | Optimization | |------------|--------------|--------------| -| `extracting words`, `merging word caches` | Tokenizes text and builds the inverted index. | - Ensure the [**searchable attributes**](/reference/api/settings#searchable-attributes) list includes only the fields you want to be checked for query word matches. | +| `extracting words`, `merging word caches` | Tokenizes text and builds the inverted index. | Ensure the [searchable attributes](/reference/api/settings#searchable-attributes) list only includes the fields you want to be checked for query word matches. | ### Proximity precision | Trace key | Description | Optimization | |------------|--------------|--------------| -| `extracting word proximity`, `merging word proximity` | Builds the data structures for phrase and attribute ranking. | Lower the precision of this operation by setting [proximity precision](/reference/api/settings#proximity-precision) to `byAttribute` instead of the default `byWord`| +| `extracting word proximity`, `merging word proximity` | Builds data structures for phrase and attribute ranking. | Lower the precision of this operation by setting [proximity precision](/reference/api/settings#proximity-precision) to `byAttribute` | ### Disk I/O and hardware bottlenecks | Trace key | Description | Optimization | |------------|--------------|--------------| -| `waiting for database writes` | Time spent writing data to disk. | No direct optimization possible. Either the disk is slow, either the quantity of data to write is big. Avoid HDDs (Hard Disk Drives). | +| `waiting for database writes` | Time spent writing data to disk. | No direct optimization possible. Either the disk is too slow or you are writing too much data in a single operation. Avoid HDDs (Hard Disk Drives) | | `waiting for extractors` | Time spent waiting for CPU-bound extraction. | No direct optimization possible. Indicates a CPU bottleneck. Use more cores or scale horizontally with [sharding](/learn/advanced/sharding). | ### Facets and filterable attributes | Trace key | Description | Optimization | |------------|--------------|--------------| -| `post processing facets > strings bulk` / `numbers bulk` | Processes equality or comparison filters. | - Disable unused [**filter features**](/reference/api/settings#features), such as comparison operators on string values.
- Keep [**sortable attributes**](reference/api/settings#sortable-attributes) to the minimum required. | +| `post processing facets > strings bulk` / `numbers bulk` | Processes equality or comparison filters. | - Disable unused [**filter features**](/reference/api/settings#features), such as comparison operators on string values.
- Reduce the number of [**sortable attributes**](reference/api/settings#sortable-attributes). | | `post processing facets > facet search` | Builds structures for the [facet search API](/reference/api/facet_search). | If you don’t use the facet search API, [disable it](/reference/api/settings#update-facet-search-settings).| ### Embeddings | Trace key | Description | Optimization | |------------|--------------|--------------| -| `writing embeddings to database` | Time spent saving vector embeddings. | - Use smaller embedding vectors when possible.
- You can avoid recomputing embeddings on document update by [disabling embedding regeneration](/reference/api/documents#vectors).
- Consider enabling [binary quantization](/reference/api/settings#binaryquantized) for your embedders. | +| `writing embeddings to database` | Time spent saving vector embeddings. | Use embedding vectors with fewer dimensions.
- [Disabling embedding regeneration on document update](/reference/api/documents#vectors).
- Consider enabling [binary quantization](/reference/api/settings#binaryquantized). | ### Word prefixes and post-processing | Trace key | Description | Optimization | |------------|--------------|--------------| -| `post processing words > word prefix *` | Builds prefix data for autocomplete. Allows to match documents that begin with a specific query term, instead of only exact matches.| Disable [**prefix search**](/reference/api/settings#prefix-search) (`prefixSearch: disabled`) if not required.
Note that this can severely impact search result relevancy. | -| `post processing words > word fst` | Builds the word FST (finite state transducer). | No direct action possible, as it depends on the number of different words in the database. Fewer searchable words can improve speed. | +| `post processing words > word prefix *` | Builds prefix data for autocomplete. Allows matching documents that begin with a specific query term, instead of only exact matches.| Disable [**prefix search**](/reference/api/settings#prefix-search) (`prefixSearch: disabled`). *This can severely impact search result relevancy.* | +| `post processing words > word fst` | Builds the word FST (finite state transducer). | No direct action possible, as FST size reflect the number of different words in the database. Using documents with fewer searchable words may improve operation speed. | ## Example analysis @@ -87,7 +87,7 @@ If you see: "processing tasks > indexing > post processing facets > facet search": "1763.06s" ``` -The [facet search feature](/learn/filtering_and_sorting/search_with_facet_filters#searching-facet-values) is consuming significant time. If your application doesn’t use it, disable it: +[Facet searching](/learn/filtering_and_sorting/search_with_facet_filters#searching-facet-values) is raking significant indexing time. If your application doesn’t use facets, disable the feature: ``` client.index('INDEX_NAME').updateFacetSearch(false); From 375e19299bdda6828515347527473b9d7d73fede Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Oct 2025 12:51:58 +0000 Subject: [PATCH 4/6] Update code samples [skip ci] --- snippets/samples/code_samples_compact_index_1.mdx | 7 +++++++ snippets/samples/code_samples_webhooks_delete_1.mdx | 4 ++++ snippets/samples/code_samples_webhooks_get_1.mdx | 4 ++++ snippets/samples/code_samples_webhooks_get_single_1.mdx | 4 ++++ snippets/samples/code_samples_webhooks_patch_1.mdx | 9 +++++++++ snippets/samples/code_samples_webhooks_post_1.mdx | 8 ++++++++ 6 files changed, 36 insertions(+) create mode 100644 snippets/samples/code_samples_compact_index_1.mdx diff --git a/snippets/samples/code_samples_compact_index_1.mdx b/snippets/samples/code_samples_compact_index_1.mdx new file mode 100644 index 0000000000..3ae5de23df --- /dev/null +++ b/snippets/samples/code_samples_compact_index_1.mdx @@ -0,0 +1,7 @@ + + +```bash cURL +curl \ + -X POST 'MEILISEARCH_URL/indexes/INDEX_UID/compact' +``` + \ No newline at end of file diff --git a/snippets/samples/code_samples_webhooks_delete_1.mdx b/snippets/samples/code_samples_webhooks_delete_1.mdx index 7b81de8e4c..d27883400d 100644 --- a/snippets/samples/code_samples_webhooks_delete_1.mdx +++ b/snippets/samples/code_samples_webhooks_delete_1.mdx @@ -12,4 +12,8 @@ client.deleteWebhook(WEBHOOK_UUID) ```go Go client.DeleteWebhook("WEBHOOK_UUID"); ``` + +```rust Rust +client.delete_webhook("WEBHOOK_UUID").await.unwrap(); +``` \ No newline at end of file diff --git a/snippets/samples/code_samples_webhooks_get_1.mdx b/snippets/samples/code_samples_webhooks_get_1.mdx index a9be7d1ba0..dad2b7c704 100644 --- a/snippets/samples/code_samples_webhooks_get_1.mdx +++ b/snippets/samples/code_samples_webhooks_get_1.mdx @@ -12,4 +12,8 @@ client.getWebhooks() ```go Go client.ListWebhooks(); ``` + +```rust Rust +let webhooks = client.get_webhooks().await.unwrap(); +``` \ No newline at end of file diff --git a/snippets/samples/code_samples_webhooks_get_single_1.mdx b/snippets/samples/code_samples_webhooks_get_single_1.mdx index 11990ec4cb..345224939f 100644 --- a/snippets/samples/code_samples_webhooks_get_single_1.mdx +++ b/snippets/samples/code_samples_webhooks_get_single_1.mdx @@ -12,4 +12,8 @@ client.getWebhook(WEBHOOK_UUID) ```go Go client.GetWebhook("WEBHOOK_UUID"); ``` + +```rust Rust +let webhook = client.get_webhook("WEBHOOK_UUID").await.unwrap(); +``` \ No newline at end of file diff --git a/snippets/samples/code_samples_webhooks_patch_1.mdx b/snippets/samples/code_samples_webhooks_patch_1.mdx index 4b9012dfde..b7b6d8aba7 100644 --- a/snippets/samples/code_samples_webhooks_patch_1.mdx +++ b/snippets/samples/code_samples_webhooks_patch_1.mdx @@ -26,4 +26,13 @@ client.UpdateWebhook("WEBHOOK_UUID", &meilisearch.UpdateWebhookRequest{ }, }); ``` + +```rust Rust +let mut update = meilisearch_sdk::webhooks::WebhookUpdate::new(); +update.remove_header("referer"); +let webhook = client + .update_webhook("WEBHOOK_UUID", &update) + .await + .unwrap(); +``` \ No newline at end of file diff --git a/snippets/samples/code_samples_webhooks_post_1.mdx b/snippets/samples/code_samples_webhooks_post_1.mdx index 05598865ca..ffe892ed05 100644 --- a/snippets/samples/code_samples_webhooks_post_1.mdx +++ b/snippets/samples/code_samples_webhooks_post_1.mdx @@ -32,4 +32,12 @@ client.AddWebhook(&meilisearch.AddWebhookRequest{ }, }); ``` + +```rust Rust +let mut payload = meilisearch_sdk::webhooks::WebhookCreate::new("WEBHOOK_TARGET_URL"); +payload + .insert_header("authorization", "SECURITY_KEY") + .insert_header("referer", "https://example.com"); +let webhook = client.create_webhook(&payload).await.unwrap(); +``` \ No newline at end of file From 5f2b00bf6428e89cebcd79d62a830eb365e7a128 Mon Sep 17 00:00:00 2001 From: CaroFG Date: Thu, 23 Oct 2025 16:18:25 +0100 Subject: [PATCH 5/6] Update headings and code sample --- .../optimize_indexing_performance.mdx | 84 +++++++++++-------- 1 file changed, 51 insertions(+), 33 deletions(-) diff --git a/learn/indexing/optimize_indexing_performance.mdx b/learn/indexing/optimize_indexing_performance.mdx index ee1b3a7a75..caf6da4208 100644 --- a/learn/indexing/optimize_indexing_performance.mdx +++ b/learn/indexing/optimize_indexing_performance.mdx @@ -28,43 +28,53 @@ Focus on the **longest-running steps** and investigate which index settings or d ## Key phases and how to optimize them -### Document processing +### `computing document changes`and `extracting documents` -| Trace key | Description | Optimization | -|------------|--------------|--------------| -| `computing document changes`, `extracting documents` | Meilisearch compares incoming documents to existing ones. | No direct optimization possible. Process duration scales with the number and size of incoming documents.| +| Description | Optimization | +|--------------|--------------| +| Meilisearch compares incoming documents to existing ones. | No direct optimization possible. Process duration scales with the number and size of incoming documents.| -### Filterable attributes +### `extracting facets` and `merging facet caches` -| Trace key | Description | Optimization | -|------------|--------------|--------------| -| `extracting facets`, `merging facet caches` | Extracts and merges filterable attributes. | Keep the number of [**filterable attributes**](/reference/api/settings#filterable-attributes) to a minimum. | +| Description | Optimization | +|--------------|--------------| +| Extracts and merges filterable attributes. | Keep the number of [**filterable attributes**](/reference/api/settings#filterable-attributes) to a minimum. | -### Searchable attributes +### `extracting words` and `merging word caches` -| Trace key | Description | Optimization | -|------------|--------------|--------------| -| `extracting words`, `merging word caches` | Tokenizes text and builds the inverted index. | Ensure the [searchable attributes](/reference/api/settings#searchable-attributes) list only includes the fields you want to be checked for query word matches. | +| Description | Optimization | +|--------------|--------------| +| Tokenizes text and builds the inverted index. | Ensure the [searchable attributes](/reference/api/settings#searchable-attributes) list only includes the fields you want to be checked for query word matches. | -### Proximity precision +### `extracting word proximity`, `merging word proximity` -| Trace key | Description | Optimization | -|------------|--------------|--------------| -| `extracting word proximity`, `merging word proximity` | Builds data structures for phrase and attribute ranking. | Lower the precision of this operation by setting [proximity precision](/reference/api/settings#proximity-precision) to `byAttribute` | +| Description | Optimization | +|--------------|--------------| +| Builds data structures for phrase and attribute ranking. | Lower the precision of this operation by setting [proximity precision](/reference/api/settings#proximity-precision) to `byAttribute` | -### Disk I/O and hardware bottlenecks +### `waiting for database writes` -| Trace key | Description | Optimization | -|------------|--------------|--------------| -| `waiting for database writes` | Time spent writing data to disk. | No direct optimization possible. Either the disk is too slow or you are writing too much data in a single operation. Avoid HDDs (Hard Disk Drives) | -| `waiting for extractors` | Time spent waiting for CPU-bound extraction. | No direct optimization possible. Indicates a CPU bottleneck. Use more cores or scale horizontally with [sharding](/learn/advanced/sharding). | +| Description | Optimization | +|--------------|--------------| +| Time spent writing data to disk. | No direct optimization possible. Either the disk is too slow or you are writing too much data in a single operation. Avoid HDDs (Hard Disk Drives) | -### Facets and filterable attributes +### `waiting for extractors` -| Trace key | Description | Optimization | -|------------|--------------|--------------| -| `post processing facets > strings bulk` / `numbers bulk` | Processes equality or comparison filters. | - Disable unused [**filter features**](/reference/api/settings#features), such as comparison operators on string values.
- Reduce the number of [**sortable attributes**](reference/api/settings#sortable-attributes). | -| `post processing facets > facet search` | Builds structures for the [facet search API](/reference/api/facet_search). | If you don’t use the facet search API, [disable it](/reference/api/settings#update-facet-search-settings).| +| Description | Optimization | +|--------------|--------------| +| Time spent waiting for CPU-bound extraction. | No direct optimization possible. Indicates a CPU bottleneck. Use more cores or scale horizontally with [sharding](/learn/advanced/sharding). | + +### `post processing facets > strings bulk` / `numbers bulk` + +| Description | Optimization | +|--------------|--------------| +| Processes equality or comparison filters. | - Disable unused [**filter features**](/reference/api/settings#features), such as comparison operators on string values.
- Reduce the number of [**sortable attributes**](reference/api/settings#sortable-attributes). | + +### `post processing facets > facet search` + +| Description | Optimization | +|--------------|--------------| +| Builds structures for the [facet search API](/reference/api/facet_search). | If you don’t use the facet search API, [disable it](/reference/api/settings#update-facet-search-settings).| ### Embeddings @@ -72,12 +82,17 @@ Focus on the **longest-running steps** and investigate which index settings or d |------------|--------------|--------------| | `writing embeddings to database` | Time spent saving vector embeddings. | Use embedding vectors with fewer dimensions.
- [Disabling embedding regeneration on document update](/reference/api/documents#vectors).
- Consider enabling [binary quantization](/reference/api/settings#binaryquantized). | -### Word prefixes and post-processing +### `post processing words > word prefix *` -| Trace key | Description | Optimization | -|------------|--------------|--------------| -| `post processing words > word prefix *` | Builds prefix data for autocomplete. Allows matching documents that begin with a specific query term, instead of only exact matches.| Disable [**prefix search**](/reference/api/settings#prefix-search) (`prefixSearch: disabled`). *This can severely impact search result relevancy.* | -| `post processing words > word fst` | Builds the word FST (finite state transducer). | No direct action possible, as FST size reflect the number of different words in the database. Using documents with fewer searchable words may improve operation speed. | +| Description | Optimization | +|--------------|--------------| +| | Builds prefix data for autocomplete. Allows matching documents that begin with a specific query term, instead of only exact matches.| Disable [**prefix search**](/reference/api/settings#prefix-search) (`prefixSearch: disabled`). _This can severely impact search result relevancy._ | + +### `post processing words > word fst` + +| Description | Optimization | +|--------------|--------------| +| Builds the word FST (finite state transducer). | No direct action possible, as FST size reflect the number of different words in the database. Using documents with fewer searchable words may improve operation speed. | ## Example analysis @@ -89,8 +104,11 @@ If you see: [Facet searching](/learn/filtering_and_sorting/search_with_facet_filters#searching-facet-values) is raking significant indexing time. If your application doesn’t use facets, disable the feature: -``` -client.index('INDEX_NAME').updateFacetSearch(false); +```bash +curl \ + -X PUT 'MEILISEARCH_URL/indexes/INDEX_UID/settings/facet-search' \ + -H 'Content-Type: application/json' \ + --data-binary 'false' ``` ## Learn more From 289a2f9bfbb3f9602cd1c57647e442ed6a6abef6 Mon Sep 17 00:00:00 2001 From: CaroFG Date: Thu, 23 Oct 2025 16:25:52 +0100 Subject: [PATCH 6/6] Update heading --- learn/indexing/optimize_indexing_performance.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learn/indexing/optimize_indexing_performance.mdx b/learn/indexing/optimize_indexing_performance.mdx index caf6da4208..98a3eff585 100644 --- a/learn/indexing/optimize_indexing_performance.mdx +++ b/learn/indexing/optimize_indexing_performance.mdx @@ -46,7 +46,7 @@ Focus on the **longest-running steps** and investigate which index settings or d |--------------|--------------| | Tokenizes text and builds the inverted index. | Ensure the [searchable attributes](/reference/api/settings#searchable-attributes) list only includes the fields you want to be checked for query word matches. | -### `extracting word proximity`, `merging word proximity` +### `extracting word proximity` and `merging word proximity` | Description | Optimization | |--------------|--------------|