Create Resources section with migration guides, comparisons, and restructured content#3503
Create Resources section with migration guides, comparisons, and restructured content#3503
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdded a new top-level "Resources" tab, removed several Learn groups/pages, migrated many internal links and redirects from /learn/* to /resources/*, and introduced numerous new Resources pages (comparisons, demos, deployment, internals, self-hosting, migration, and help) plus related routing updates. Changes
Sequence Diagram(s)(No sequence diagrams generated.) Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
resources/self_hosting/install_meilisearch_locally.mdx (1)
50-61:⚠️ Potential issue | 🟠 MajorUpdate Docker image version or remove "latest stable release" claim.
The text on line 50 claims "latest stable release," but the pinned version (
v1.37) is outdated. Docker Hub currently offersv1.38.2as the latest stable release. Additionally,guides/docker.mdxexplicitly warns against using the:latesttag to avoid inconsistencies across machines.Update the commands to use
v1.38.2, or remove the "latest stable release" phrase and note the specific version being documented.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/self_hosting/install_meilisearch_locally.mdx` around lines 50 - 61, The documentation claims "latest stable release" but pins the Docker image to getmeili/meilisearch:v1.37; update the image tag to the current stable (getmeili/meilisearch:v1.38.2) and change the text to either remove the "latest stable release" phrase or explicitly state the documented version (v1.38.2) so the docs and the docker pull/run lines (the getmeili/meilisearch:v1.37 strings) stay consistent; ensure the run and pull commands both use the same updated tag.
🧹 Nitpick comments (7)
resources/migration/algolia_migration.mdx (1)
120-125: Consider adding a note about payload size limits.The batch size increase from 1,000 to 100,000 improves performance for typical small documents. However, the default Meilisearch payload limit is 100MB. If documents are large (for example, with lengthy text fields), a batch of 100,000 could exceed this limit and cause failures.
Consider adding a brief note advising users to adjust
BATCH_SIZEbased on their average document size, or linking to the payload limit configuration.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/migration/algolia_migration.mdx` around lines 120 - 125, Add a short note near the BATCH_SIZE example warning that Meilisearch has a default 100MB payload limit and that using meiliIndex.addDocumentsInBatches(records, BATCH_SIZE) with BATCH_SIZE = 100000 may exceed that limit for large documents; advise readers to calculate/estimate their average document size and reduce BATCH_SIZE accordingly (or point them to the payload limit configuration link) so uploads don’t fail.learn/relevancy/synonyms.mdx (1)
15-15: Split this sentence for readability.Line 15 packs result counts, causes, and examples into one dense sentence. Breaking it up and replacing “take into account” with something shorter makes the explanation easier to scan.
Suggested change
-With the new settings, searching for `great` returns 595 results and `fantastic` returns 423 results. This is due to various factors like [typos](/learn/relevancy/typo_tolerance_settings#minwordsizefortypos) and [splitting the query](/resources/internals/concat#split-queries) to find relevant documents. The search for `great` will allow only one typo (for example, `create`) and take into account all variations of `great` (for instance, `greatest`) along with `fantastic`. +With the new settings, searching for `great` returns 595 results, and `fantastic` returns 423 results. This is due to factors such as [typos](/learn/relevancy/typo_tolerance_settings#minwordsizefortypos) and [splitting the query](/resources/internals/concat#split-queries) to find relevant documents. The search for `great` allows only one typo, for example `create`, and considers variations of `great`, such as `greatest`, along with `fantastic`.As per coding guidelines, "Prefer shorter sentences; if a sentence runs over approximately 40 words, consider splitting or simplifying" and "Prefer short, direct sentences and avoid jargon when a simpler term exists in documentation."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@learn/relevancy/synonyms.mdx` at line 15, Split the long sentence that starts "With the new settings, searching for `great` returns 595 results and `fantastic` returns 423 results." into two shorter sentences: first state the result counts and then explain the reasons (typos, query splitting) and examples; also replace the phrase "take into account" with a shorter term like "include" or "consider" (e.g., "it will allow only one typo and include variations such as `greatest` and synonyms like `fantastic`"). Use the existing phrasing referencing searches for `great` and `fantastic` to locate and update the sentence in synonyms.mdx.guides/ruby_on_rails_quick_start.mdx (1)
12-12: Use a site-relative docs link here.This points to another page in the docs, so the full
www.meilisearch.com/docsURL will bypass preview and versioned builds. A root-relative path keeps the link portable across environments.Suggested change
-If you prefer to use the self-hosted version of Meilisearch, you can follow the [quick start](https://www.meilisearch.com/docs/resources/self_hosting/getting_started) tutorial. +If you prefer to use the self-hosted version of Meilisearch, you can follow the [quick start](/resources/self_hosting/getting_started) tutorial.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@guides/ruby_on_rails_quick_start.mdx` at line 12, Replace the absolute meilisearch docs URL in the sentence (the link text "https://www.meilisearch.com/docs/resources/self_hosting/getting_started") with a root-relative docs path so the link remains portable across preview and versioned builds; update the link target to start with "/docs/..." (matching your docs structure) while keeping the same anchor text so the self-hosted quick start still points to the same internal docs page.resources/help/sdks.mdx (1)
9-9: Prefer a fragment-only link for this in-page jump.Since this points to a heading in the same document,
#contributingis enough and avoids another pathname update if this page moves again.Suggested change
-New integrations are constantly in development. If you'd like to contribute, [see below](/resources/help/sdks#contributing). +New integrations are constantly in development. If you'd like to contribute, [see below](`#contributing`).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/help/sdks.mdx` at line 9, Replace the absolute in-page link "/resources/help/sdks#contributing" with the fragment-only anchor "#contributing" in the sentence "If you'd like to contribute, [see below](/resources/help/sdks#contributing)." so the Markdown link target becomes "#contributing" (keep the link text "see below" unchanged).learn/filtering_and_sorting/filter_search_results.mdx (1)
60-60: Link directly to the relevant section.This sentence is about nested fields on objects, so landing readers on the
Objectssection would be easier than sending them to the top of the page.Suggested fix
-Use dot notation to filter results based on a document's [nested fields](/resources/internals/datatypes). The following query only returns thrillers with good user reviews: +Use dot notation to filter results based on a document's [nested fields](/resources/internals/datatypes#objects). The following query only returns thrillers with good user reviews:As per coding guidelines, "When adding or moving content, update or add links from related pages so users can find it."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@learn/filtering_and_sorting/filter_search_results.mdx` at line 60, The "nested fields" link currently points to /resources/internals/datatypes (top of page) but should link directly to the Objects section to land readers on the relevant subsection; update the anchor in the "nested fields" link (the link whose text is "nested fields") to point to the Objects section anchor (e.g., /resources/internals/datatypes#objects or the correct section id used in that page) so the sentence about using dot notation takes users directly to the Objects documentation.resources/help/experimental_features_overview.mdx (1)
48-68: Consider adding specific anchors for better navigation.Several experimental feature links point to the generic
/resources/self_hosting/configurationpage without specific anchors. Based on the context snippets, specific anchor sections exist in the configuration file.For example:
- Line 53 (Search queue size): Could use
#search-queue-size- Line 54 (Drop search after): Could use
#drop-search-after- Line 55 (Searches per core): Could use
#searches-per-coreLines 63-65 correctly use specific anchors. Consider updating lines 48, 51-55, 67, and 68 with their corresponding anchors for a better user experience.
🔗 Suggested anchor additions
-| [Limit task batch size](/resources/self_hosting/configuration) | Limits number of tasks processed in a single batch | CLI flag or environment variable | +| [Limit task batch size](/resources/self_hosting/configuration#maximum-number-of-batched-tasks) | Limits number of tasks processed in a single batch | CLI flag or environment variable | ... -| [Search queue size](/resources/self_hosting/configuration) | Configure maximum number of concurrent search requests | CLI flag or environment variable | +| [Search queue size](/resources/self_hosting/configuration#search-queue-size) | Configure maximum number of concurrent search requests | CLI flag or environment variable | -| [Drop search after](/resources/self_hosting/configuration) | Drop irrelevant search requests after a configurable timeout (default: 60s) | CLI flag or environment variable | +| [Drop search after](/resources/self_hosting/configuration#drop-search-after) | Drop irrelevant search requests after a configurable timeout (default: 60s) | CLI flag or environment variable | -| [Searches per core](/resources/self_hosting/configuration) | Configure number of concurrent search requests per CPU core (default: 4) | CLI flag or environment variable | +| [Searches per core](/resources/self_hosting/configuration#searches-per-core) | Configure number of concurrent search requests per CPU core (default: 4) | CLI flag or environment variable |🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/help/experimental_features_overview.mdx` around lines 48 - 68, Update the generic configuration links to point to their specific anchors: change the link targets for "Search queue size" to include `#search-queue-size`, "Drop search after" to `#drop-search-after`, "Searches per core" to `#searches-per-core`, plus update the links for "Limit task batch size", "Reduce indexing memory usage", "Replication parameters", and "Maximum batch payload size" (lines referenced by their link texts in the diff) to the corresponding anchors in the configuration doc so each markdown link targets the precise section rather than the top-level /resources/self_hosting/configuration page.resources/self_hosting/configuration.mdx (1)
601-601: Minor: Consider adding a subject for grammatical completeness.The sentence "Can also be toggled at runtime via the
/experimental-featuresAPI route." lacks an explicit subject.📝 Suggested fix
-Enables the `CONTAINS` filter operator at launch. Can also be toggled at runtime via the `/experimental-features` API route. +Enables the `CONTAINS` filter operator at launch. This can also be toggled at runtime via the `/experimental-features` API route.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/self_hosting/configuration.mdx` at line 601, The sentence fragment "Can also be toggled at runtime via the `/experimental-features` API route." is missing a subject; update the sentence in the documentation near the `CONTAINS` feature description so it reads with an explicit subject (for example: "The `CONTAINS` filter operator can also be toggled at runtime via the `/experimental-features` API route."). Ensure you reference `CONTAINS` and `/experimental-features` in the revised sentence.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@learn/getting_started/documents.mdx`:
- Line 62: Update the "index a document" link in
learn/getting_started/documents.mdx so it points to the more detailed
primary-field documentation; replace the current href
/resources/self_hosting/getting_started#add-documents with
/learn/getting_started/primary_key#primary-field (or alternatively, expand the
target section to fully explain primary-field/primary-key/document-id behavior
and why missing/wrong keys error) so readers clicking "index a document" get the
comprehensive primary-field guidance.
In `@learn/indexing/optimize_indexing_performance.mdx`:
- Around line 115-116: The list item containing the link text "Impact of RAM and
multi-threading on indexing performance" should be a single inline bullet
without a line break or trailing double spaces; edit the markdown so the entire
link [Impact of RAM and multi-threading on indexing
performance](/resources/self_hosting/ram_multithreading_performance) is on one
line and remove the extra two spaces at the end, and ensure only single spaces
are used between words and after sentence-ending punctuation in that list entry.
In `@learn/security/tenant_tokens.mdx`:
- Line 31: Update the sentence in the "Tenant tokens" paragraph that currently
reads "Meilisearch does not store nor keeps track of generated tokens" to the
grammatically correct phrasing "Meilisearch does not store or keep track of
generated tokens" (replace "does not store nor keeps track" with "does not store
or keep track") to fix subject-verb agreement and conjunction usage.
In `@reference/errors/error_codes.mdx`:
- Line 31: Update the sentence "A document exceeds the [maximum limit of 65,535
fields]..." to use the correct value and terminology from the linked page:
change it to "A document exceeds the [maximum limit of 65,536 attributes]..." so
the numeric limit and noun ("attributes") match the Meilisearch limitations
page; ensure only that single phrase is edited (the bracketed link text) and the
link target remains unchanged.
In `@resources/help/faq.mdx`:
- Line 15: Replace the awkward phrase "help you integrate easily Meilisearch in
your project" with a clearer, more natural wording; update the sentence in
resources/help/faq.mdx (the line containing "We also provide a lot of tools,
including [SDKs](/resources/help/sdks), to help you integrate easily Meilisearch
in your project.") to something like "We also provide many tools, including
[SDKs](/resources/help/sdks), to help you easily integrate Meilisearch into your
project." Ensure punctuation and spacing remain consistent with surrounding
text.
In `@resources/self_hosting/data_backup/snapshots.mdx`:
- Line 25: Update the --schedule-snapshot option description to state that
Meilisearch creates the first scheduled snapshot only after the configured
interval elapses (not immediately), mirroring the behavior documented in
snapshots.mdx; mention that the first snapshot will appear in the snapshots
directory and subsequent snapshots are created at the configured cadence (e.g.,
every 24 hours) to avoid the current mismatch between the two docs.
In `@resources/self_hosting/supported_os.mdx`:
- Line 7: Update the product name casing in the sentence "Meilisearch officially
supports Windows, MacOS, and many Linux distributions." by changing "MacOS" to
the official spelling "macOS" so the line reads "Meilisearch officially supports
Windows, macOS, and many Linux distributions."; ensure only the casing is
changed and no other text is modified.
---
Outside diff comments:
In `@resources/self_hosting/install_meilisearch_locally.mdx`:
- Around line 50-61: The documentation claims "latest stable release" but pins
the Docker image to getmeili/meilisearch:v1.37; update the image tag to the
current stable (getmeili/meilisearch:v1.38.2) and change the text to either
remove the "latest stable release" phrase or explicitly state the documented
version (v1.38.2) so the docs and the docker pull/run lines (the
getmeili/meilisearch:v1.37 strings) stay consistent; ensure the run and pull
commands both use the same updated tag.
---
Nitpick comments:
In `@guides/ruby_on_rails_quick_start.mdx`:
- Line 12: Replace the absolute meilisearch docs URL in the sentence (the link
text "https://www.meilisearch.com/docs/resources/self_hosting/getting_started")
with a root-relative docs path so the link remains portable across preview and
versioned builds; update the link target to start with "/docs/..." (matching
your docs structure) while keeping the same anchor text so the self-hosted quick
start still points to the same internal docs page.
In `@learn/filtering_and_sorting/filter_search_results.mdx`:
- Line 60: The "nested fields" link currently points to
/resources/internals/datatypes (top of page) but should link directly to the
Objects section to land readers on the relevant subsection; update the anchor in
the "nested fields" link (the link whose text is "nested fields") to point to
the Objects section anchor (e.g., /resources/internals/datatypes#objects or the
correct section id used in that page) so the sentence about using dot notation
takes users directly to the Objects documentation.
In `@learn/relevancy/synonyms.mdx`:
- Line 15: Split the long sentence that starts "With the new settings, searching
for `great` returns 595 results and `fantastic` returns 423 results." into two
shorter sentences: first state the result counts and then explain the reasons
(typos, query splitting) and examples; also replace the phrase "take into
account" with a shorter term like "include" or "consider" (e.g., "it will allow
only one typo and include variations such as `greatest` and synonyms like
`fantastic`"). Use the existing phrasing referencing searches for `great` and
`fantastic` to locate and update the sentence in synonyms.mdx.
In `@resources/help/experimental_features_overview.mdx`:
- Around line 48-68: Update the generic configuration links to point to their
specific anchors: change the link targets for "Search queue size" to include
`#search-queue-size`, "Drop search after" to `#drop-search-after`, "Searches per
core" to `#searches-per-core`, plus update the links for "Limit task batch size",
"Reduce indexing memory usage", "Replication parameters", and "Maximum batch
payload size" (lines referenced by their link texts in the diff) to the
corresponding anchors in the configuration doc so each markdown link targets the
precise section rather than the top-level /resources/self_hosting/configuration
page.
In `@resources/help/sdks.mdx`:
- Line 9: Replace the absolute in-page link "/resources/help/sdks#contributing"
with the fragment-only anchor "#contributing" in the sentence "If you'd like to
contribute, [see below](/resources/help/sdks#contributing)." so the Markdown
link target becomes "#contributing" (keep the link text "see below" unchanged).
In `@resources/migration/algolia_migration.mdx`:
- Around line 120-125: Add a short note near the BATCH_SIZE example warning that
Meilisearch has a default 100MB payload limit and that using
meiliIndex.addDocumentsInBatches(records, BATCH_SIZE) with BATCH_SIZE = 100000
may exceed that limit for large documents; advise readers to calculate/estimate
their average document size and reduce BATCH_SIZE accordingly (or point them to
the payload limit configuration link) so uploads don’t fail.
In `@resources/self_hosting/configuration.mdx`:
- Line 601: The sentence fragment "Can also be toggled at runtime via the
`/experimental-features` API route." is missing a subject; update the sentence
in the documentation near the `CONTAINS` feature description so it reads with an
explicit subject (for example: "The `CONTAINS` filter operator can also be
toggled at runtime via the `/experimental-features` API route."). Ensure you
reference `CONTAINS` and `/experimental-features` in the revised sentence.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 8504252b-8009-4c28-9f79-991d354f3d68
📒 Files selected for processing (49)
docs.jsonguides/docker.mdxguides/front_end/front_end_integration.mdxguides/laravel_multitenancy.mdxguides/multitenancy_nodejs.mdxguides/ruby_on_rails_quick_start.mdxguides/strapi_v4.mdxguides/vercel.mdxhome.mdxlearn/filtering_and_sorting/filter_search_results.mdxlearn/getting_started/cloud_quick_start.mdxlearn/getting_started/documents.mdxlearn/getting_started/what_is_meilisearch.mdxlearn/indexing/indexing_best_practices.mdxlearn/indexing/optimize_indexing_performance.mdxlearn/personalization/search_personalization.mdxlearn/relevancy/synonyms.mdxlearn/relevancy/typo_tolerance_settings.mdxlearn/security/tenant_tokens.mdxreference/api/authorization.mdxreference/errors/error_codes.mdxresources/help/comparison_to_alternatives.mdxresources/help/contributing_docs.mdxresources/help/experimental_features_overview.mdxresources/help/faq.mdxresources/help/known_limitations.mdxresources/help/language.mdxresources/help/sdks.mdxresources/help/telemetry.mdxresources/help/versioning.mdxresources/internals/concat.mdxresources/internals/datatypes.mdxresources/internals/prefix.mdxresources/internals/storage.mdxresources/migration/algolia_migration.mdxresources/migration/migrating_cloud.mdxresources/migration/updating.mdxresources/self_hosting/configuration.mdxresources/self_hosting/data_backup/dumps.mdxresources/self_hosting/data_backup/snapshots.mdxresources/self_hosting/data_backup/snapshots_vs_dumps.mdxresources/self_hosting/enterprise_edition.mdxresources/self_hosting/getting_started.mdxresources/self_hosting/http2_ssl.mdxresources/self_hosting/huggingface_gpu.mdxresources/self_hosting/install_meilisearch_locally.mdxresources/self_hosting/ram_multithreading_performance.mdxresources/self_hosting/supported_os.mdxresources/self_hosting/webhooks.mdx
There was a problem hiding this comment.
Actionable comments posted: 16
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (5)
docs.json (5)
935-938:⚠️ Potential issue | 🟡 MinorRedirect chain detected.
This redirect points to
/learn/security/master_api_keys, which itself redirects to/learn/security/basic_security(line 1317). This creates a redirect chain that degrades user experience and SEO.Update the destination to point directly to the final target.
🔧 Proposed fix
{ "source": "/reference/features/authentication", - "destination": "/learn/security/master_api_keys" + "destination": "/learn/security/basic_security" },🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs.json` around lines 935 - 938, This redirect entry with source "/reference/features/authentication" currently points to "/learn/security/master_api_keys", creating a redirect chain because "/learn/security/master_api_keys" itself redirects to "/learn/security/basic_security"; update the destination field for the entry that has source "/reference/features/authentication" to point directly to the final target "/learn/security/basic_security" to eliminate the chain.
999-1002:⚠️ Potential issue | 🟡 MinorTypo in redirect destination path.
The destination path includes an erroneous
docs/prefix. All other redirects in this file use paths starting with/. This will likely cause a broken redirect.🔧 Proposed fix
{ "source": "/learn/advanced/filtering", - "destination": "docs/learn/filtering_and_sorting/filter_search_results" + "destination": "/learn/filtering_and_sorting/filter_search_results" },🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs.json` around lines 999 - 1002, The redirect entry with "source": "/learn/advanced/filtering" has an incorrect "destination" value prefixed with "docs/"; update the "destination" string in that object (the key named destination) to start with a leading slash like "/learn/filtering_and_sorting/filter_search_results" to match other redirects and avoid a broken path.
1351-1354:⚠️ Potential issue | 🟡 MinorRedirect chain detected.
This redirect points to
/learn/what_is_meilisearch/comparison_to_alternatives, which itself redirects to/resources/help/comparison_to_alternatives(lines 1327-1330). Update to point directly to the final destination.🔧 Proposed fix
{ "source": "/learn/what_is_meilisearch/overview#alternatives", - "destination": "/learn/what_is_meilisearch/comparison_to_alternatives" + "destination": "/resources/help/comparison_to_alternatives" },🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs.json` around lines 1351 - 1354, The redirect entry with "source": "/learn/what_is_meilisearch/overview#alternatives" currently points to an intermediate "destination": "/learn/what_is_meilisearch/comparison_to_alternatives" which creates a redirect chain; update this entry so its "destination" is the final URL "/resources/help/comparison_to_alternatives" (the same final target used by the existing redirect at lines referencing "/learn/what_is_meilisearch/comparison_to_alternatives") to eliminate the extra hop and avoid the chain.
1107-1110:⚠️ Potential issue | 🟡 MinorRedirect chain with incorrect intermediate path.
This redirect points to
/guides/deployment/gcp, which redirects to/guides/running_production(lines 1763-1766). However, there's now a dedicated GCP deployment page atresources/self_hosting/deployment/gcp(line 795).🔧 Proposed fix
{ "source": "/learn/cookbooks/gcp", - "destination": "/guides/deployment/gcp" + "destination": "/resources/self_hosting/deployment/gcp" },🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs.json` around lines 1107 - 1110, The redirect entry with "source": "/learn/cookbooks/gcp" currently points to "/guides/deployment/gcp" causing a redirect chain; update its "destination" value to the canonical page "resources/self_hosting/deployment/gcp" so the redirect goes directly to the dedicated GCP deployment page and avoids the intermediate "/guides/deployment/gcp" -> "/guides/running_production" chain.
1091-1098:⚠️ Potential issue | 🟡 MinorRedirects point to non-existent paths.
These redirects target
/guides/deployment/awsand/guides/deployment/azure, but the Guides tab (lines 758-762) only containsguides/running_production. The actual deployment pages are now atresources/self_hosting/deployment/*(lines 793-798).Update these redirects to point to the new Resources paths.
🔧 Proposed fix
{ "source": "/learn/cookbooks/aws", - "destination": "/guides/deployment/aws" + "destination": "/resources/self_hosting/deployment/aws" }, { "source": "/learn/cookbooks/azure", - "destination": "/guides/deployment/azure" + "destination": "/resources/self_hosting/deployment/azure" },🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs.json` around lines 1091 - 1098, The redirects in docs.json map "/learn/cookbooks/aws" and "/learn/cookbooks/azure" to non-existent destinations "/guides/deployment/aws" and "/guides/deployment/azure"; update those destination values to the current pages under resources/self_hosting/deployment (e.g., change the destination for "/learn/cookbooks/aws" to "/resources/self_hosting/deployment/aws" and for "/learn/cookbooks/azure" to "/resources/self_hosting/deployment/azure") so the redirects point to the actual deployment pages.
🧹 Nitpick comments (11)
resources/migration/previous_docs_version.mdx (3)
29-29: Minor grammar fix: "onto" instead of "into".When referring to downloading files, "onto your local machine" is the standard phrasing.
✏️ Suggested fix
-To access previous versions of the Meilisearch documentation, the first step is downloading the documentation repository into your local machine. In Git, this is referred to as cloning. +To access previous versions of the Meilisearch documentation, the first step is downloading the documentation repository onto your local machine. In Git, this is referred to as cloning.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/migration/previous_docs_version.mdx` at line 29, Update the sentence that reads "downloading the documentation repository into your local machine" in resources/migration/previous_docs_version.mdx (the line starting "To access previous versions...") to use the correct preposition by replacing "into your local machine" with "onto your local machine".
23-23: Consider clarifying Node version requirement.Node v14 reached end-of-life in April 2023. If this specific version is required for compatibility with the old VuePress documentation (v0.17-v1.1), consider adding a brief note explaining why. Otherwise, users may have trouble installing or running a deprecated Node version. If newer Node versions work, update the recommendation.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/migration/previous_docs_version.mdx` at line 23, Update the "[Node v14](https://nodejs.org/en/)" entry: either change it to a supported Node LTS version (e.g., "Node v18 LTS") if newer versions are compatible, or keep "Node v14" but append a brief explanatory note that v14 is EOL and is only required for legacy VuePress v0.17–v1.1 compatibility, including a short reason and any workaround (e.g., using nvm to install v14) so readers know why the deprecated version is listed.
59-101: Consider consistent version range formatting in headings.The section headings use different formats for version ranges:
- Line 59:
>= v1.2- Line 65:
v0.17-v1.1(dash, no spaces)- Line 89:
v0.11-v0.16(dash, no spaces)- Line 101:
v0.8 to v0.10(word "to")Additionally, the warning on line 86 uses spaced dash: "v0.17 - v1.1".
Consider using a consistent format across all version ranges for readability.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/migration/previous_docs_version.mdx` around lines 59 - 101, Normalize version-range formatting across headings and the warning: change ">= v1.2: read `.mdx` files" to a consistent phrase like "v1.2 and later: read `.mdx` files" and make all other ranges use the same delimiter style (e.g., "v0.17 - v1.1", "v0.11 - v0.16", "v0.8 - v0.10"); update the Warning text that currently says "v0.17 - v1.1" to match the chosen style and ensure all section headings ("v0.17-v1.1: run a local Vuepress server", "v0.11-v0.16: run a simple Python server", "v0.8 to v0.10: read markdown source files") use that same format for consistency.resources/demos/saas.mdx (1)
41-52: Keep the sample request aligned with the page text.The intro and table describe search across contacts, companies, deals, and activities, but this example only queries three indexes. Either add the
activitiesquery, or call out that the snippet is abbreviated.✏️ Proposed doc fix
"queries": [ { "indexUid": "contacts", "q": "acme" }, { "indexUid": "companies", "q": "acme" }, - { "indexUid": "deals", "q": "acme" } + { "indexUid": "deals", "q": "acme" }, + { "indexUid": "activities", "q": "acme" } ]🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/demos/saas.mdx` around lines 41 - 52, The example multi-search JSON is missing the "activities" query referenced in the intro/table; update the sample in the Multi-search request example so the "queries" array includes an entry for { "indexUid": "activities", "q": "acme" } to match the page text (or explicitly annotate the snippet as abbreviated), ensuring the requests shown in the examples align with the described indexes (contacts, companies, deals, activities).resources/comparisons/typesense.mdx (1)
26-26: Avoid roadmap language in comparison copy.
is adding field boosting supportwill age into stale or false copy as soon as the roadmap changes or the feature ships. Describe current behavior only, or link to a tracked issue or release note if you need to mention upcoming work.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/comparisons/typesense.mdx` at line 26, Replace the roadmap phrasing "is adding field boosting support" in resources/comparisons/typesense.mdx with a statement of current behavior or a link to a tracked issue/release note; specifically update the sentence that contrasts Typesense field boosting with Meilisearch (the line referencing field boosting) to either describe Meilisearch's present capabilities (e.g., it uses searchable attributes ordering and does not yet support field boosting) or append a link to an official issue/release note that tracks the planned feature so the copy remains accurate over time.resources/comparisons/mongodb.mdx (1)
7-7: Useaggregation pipelinein the intro.
Query API syntaxis broader than the feature you describe later in Lines 27-29. Naming the aggregation pipeline up front would make the opening more precise.✏️ Proposed doc fix
-MongoDB Atlas Search integrates Apache Lucene-based full-text search directly into MongoDB Atlas. It allows searching MongoDB collections without a separate search infrastructure, using familiar MongoDB Query API syntax. +MongoDB Atlas Search integrates Apache Lucene-based full-text search directly into MongoDB Atlas. It allows searching MongoDB collections without a separate search infrastructure, using the familiar MongoDB aggregation pipeline.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/comparisons/mongodb.mdx` at line 7, Update the opening sentence "MongoDB Atlas Search integrates Apache Lucene-based full-text search directly into MongoDB Atlas. It allows searching MongoDB collections without a separate search infrastructure, using familiar MongoDB Query API syntax." to explicitly mention the aggregation pipeline instead of the broader "Query API syntax" — e.g., replace "using familiar MongoDB Query API syntax" with "via the MongoDB aggregation pipeline" and ensure the intro wording aligns with the later description that references the aggregation pipeline.resources/self_hosting/deployment/digitalocean.mdx (1)
94-94: Link to the moved self-hosting page directly.This new Resources page still points to the legacy self-hosting URL. Please switch it to the canonical Resources path so readers do not bounce through a redirect from a brand-new page. As per coding guidelines, "When adding or moving content, update or add links from related pages so users can find it."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/self_hosting/deployment/digitalocean.mdx` at line 94, Replace the legacy link in the sentence "Remember to choose a [safe master key](/learn/security/basic_security#creating-the-master-key-in-a-self-hosted-instance)..." with the canonical Resources URL for the moved self-hosting page (update the target after the [safe master key] link to the new /resources/self-hosting/... path and preserve the same fragment `#creating-the-master-key-in-a-self-hosted-instance`); change the href only, keep the link text unchanged and apply the same replacement wherever that legacy URL appears.resources/demos/voice_search.mdx (1)
64-75: Consider adding standard API fallback for broader browser compatibility.The code uses the vendor-prefixed
webkitSpeechRecognitionwhich only works in Chrome/Edge. For a more complete example that aligns with the browser support matrix listed above (including Firefox partial support), consider showing the standard API with fallback.Suggested improvement
-const recognition = new webkitSpeechRecognition(); +const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; +const recognition = new SpeechRecognition(); recognition.continuous = true; recognition.interimResults = true;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/demos/voice_search.mdx` around lines 64 - 75, Replace the hard-coded vendor API with a standard API fallback: detect SpeechRecognition via window.SpeechRecognition || window.webkitSpeechRecognition, guard if null, then instantiate (e.g., const Recognition = window.SpeechRecognition || window.webkitSpeechRecognition; const recognition = new Recognition();), keep the existing property assignments (continuous, interimResults), onresult handler that calls searchMeilisearch(transcript), and only call recognition.start() when the API exists to ensure broader browser compatibility.resources/comparisons/alternatives.mdx (1)
260-260: Consider hyphenating compound adjectives."Open source" and "closed source" function as compound adjectives modifying "search engines" and are typically hyphenated in this usage.
Suggested change
-Since Lucene is the technology behind many open source or closed source search engines, it is considered as the reference search library. +Since Lucene is the technology behind many open-source or closed-source search engines, it is considered the reference search library.Note: Also removed "as" after "considered" for conciseness.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/comparisons/alternatives.mdx` at line 260, Update the sentence "Since Lucene is the technology behind many open source or closed source search engines, it is considered as the reference search library." by hyphenating the compound adjectives and removing the extraneous "as": change "open source" to "open-source", "closed source" to "closed-source", and remove "as" after "considered" so the phrase reads "...it is considered the reference search library." Use this exact wording change where the sentence appears in the alternatives.mdx content.docs.json (2)
83-85: Footer link uses redirected path.The Comparisons link in the footer points to
/learn/what_is_meilisearch/comparison_to_alternatives, which now redirects to/resources/help/comparison_to_alternatives. Consider updating to the canonical path, or to the new Comparisons section overview at/resources/comparisons/alternatives.🔧 Proposed fix
{ "label": "Comparisons", - "href": "https://www.meilisearch.com/docs/learn/what_is_meilisearch/comparison_to_alternatives" + "href": "https://www.meilisearch.com/docs/resources/comparisons/alternatives" },🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs.json` around lines 83 - 85, The footer entry with "label": "Comparisons" currently has an outdated "href" value pointing to /learn/what_is_meilisearch/comparison_to_alternatives; update that object's "href" to the canonical path (either /resources/help/comparison_to_alternatives) or the new overview (/resources/comparisons/alternatives) so the footer points to the non-redirecting URL; locate the JSON object with "label": "Comparisons" and replace its "href" string accordingly.
861-872: Consider clarifying the distinction between comparison pages.The navigation includes both
resources/comparisons/alternatives(line 863) in the Comparisons group andresources/help/comparison_to_alternatives(line 892) in the Help group. If these serve different purposes (e.g., overview vs. detailed comparisons), consider renaming one for clarity. If they're redundant, consolidate them.Also applies to: 892-892
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs.json` around lines 861 - 872, The navigation lists two potentially overlapping pages: "resources/comparisons/alternatives" and "resources/help/comparison_to_alternatives"; decide whether they are distinct (overview vs. deep-dive) or redundant, then either rename one to make purpose explicit (e.g., "resources/comparisons/alternatives_overview" or "resources/help/alternatives_deep_dive") and update all nav entries that reference those slugs, or consolidate by removing one entry and merging content into the remaining page; update the "Comparisons" and "Help" group arrays in docs.json and any internal links/redirects to use the chosen canonical slug so navigation and content remain consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@resources/comparisons/alternatives.mdx`:
- Line 84: The Rails table row contains a trailing double pipe ("|
[Rails](https://github.com/meilisearch/meilisearch-rails) | ✅ | ✅ | 🔶 <br />WIP
| ✅ ||") which creates an empty cell; edit that row to remove the extra pipe so
it ends with a single pipe (or no trailing pipe) to restore the correct number
of columns.
In `@resources/comparisons/elasticsearch.mdx`:
- Around line 17-18: The table rows for "**Pricing**" and "**Open source**"
contain hard-coded commercial details that will drift and compress complex
licensing into a short cell; update the "**Pricing**" row to use qualitative
wording (e.g., "self‑hosted: free OSS; hosted: paid tiers/vary by provider — see
vendor pricing") or add an explicit edition/date and citation, and change the
"**Open source**" row to describe the licensing difference qualitatively (e.g.,
"Permissive MIT for core vs. source-availability/AGPL-like restrictions for
hosted features — see license notes") so the table remains accurate without
fixed price points or oversimplified license text.
- Around line 57-59: The statement "Your dataset is under 500 million documents"
should be qualified: change the copy around that heading/text to present the 500
million number as a workload-dependent guideline rather than a hard cutoff by
either rephrasing to say "For many typical workloads (e.g., small documents,
simple ranking and filters, commodity server hardware), Meilisearch can handle
up to ~500 million documents on a single server" or by adding an explicit
assumptions sentence listing factors that affect the threshold (document size,
indexing complexity, ranking rules, filter cardinality, and hardware specs) and
recommending benchmarking for heavier workloads; update the paragraph under the
same heading to reflect this conditional/assumptive language.
In `@resources/comparisons/typesense.mdx`:
- Line 18: The "**Built-in analytics**" table row mixes a managed offering with
core engine features (shows "Yes (Cloud)" for one side but treats the other as
core), so either make the row compare managed tiers on both sides or restrict it
to core engine capabilities; update the "**Built-in analytics**" row in
resources/comparisons/typesense.mdx to one of two fixes: (A) mark both columns
as managed offerings (e.g., "Yes (Cloud)" vs "Yes (Cloud) / Basic query
popularity") and clarify in the header that this row compares managed tiers, or
(B) scope to core engine features by removing the "Cloud" parenthetical and
setting both columns to reflect on-prem/core capabilities (e.g., "No" or "Basic
query popularity" consistently) so the comparison is between the same product
tier.
In `@resources/demos/ecommerce.mdx`:
- Line 37: Replace the confusing `_geoRadius` analogy in the table row that
currently reads "Numeric range with `_geoRadius` equivalent for prices" with a
concise description such as "Numeric range filtering"; update the cell text to
remove `_geoRadius` and any geosearch analogy so it simply states "Numeric range
filtering" (locate the table row containing the literal `_geoRadius` token to
edit).
In `@resources/demos/overview.mdx`:
- Line 104: Replace the definitive sentence "All demo source code is available
in the [meilisearch/demos](https://github.com/meilisearch/demos) repository."
with a neutral statement that demo source is hosted on GitHub and that some
demos live in the meilisearch/demos repository while others have dedicated
repositories; keep the existing link to meilisearch/demos but add a short clause
like "and some demos are maintained in separate, dedicated repos" to avoid
implying all demos are in one place and ensure consistency with the links in
saas.mdx, ecommerce.mdx, and where_to_watch.mdx.
In `@resources/internals/bucket_sort.mdx`:
- Around line 67-79: The curl example uses the wrong HTTP verb: change the
request method from PATCH to PUT when calling the
/indexes/movies/settings/ranking-rules endpoint in the example curl command (the
line starting with curl -X PATCH
"${MEILISEARCH_URL}/indexes/movies/settings/ranking-rules"); update it to use
PUT so the ranking-rules update succeeds with the Meilisearch API while keeping
the same headers and JSON payload.
- Around line 52-61: Update the "Default ranking rules" list and the cURL
example payload to reflect Meilisearch v1.36.0+ built-in ranking rules: replace
the legacy "attribute" entry with two rules "attributeRank" and "wordPosition"
and ensure the order is exactly: words, typo, proximity, attributeRank, sort,
wordPosition, exactness; update both the bulleted list under the "Default
ranking rules" heading and the JSON/rankRules array in the curl example
accordingly so both locations match the new seven-rule sequence.
- Around line 26-34: Update the Step 2 description and table so the `typo` rule
is applied to the 1-word bucket (Bucket 4) containing "Badman" rather than
Bucket 1; specifically, change the narrative "If a bucket contains multiple
documents, the next rule (`typo`) breaks ties" to indicate that the `typo` split
is used only where a bucket has multiple candidates (e.g., the 1-word bucket),
and adjust the table rows so Bucket 4 (1-word) shows the 0-typo "Batman" and the
1-typo "Badman -> Batman" entries instead of placing the `typo` split under
Bucket 1. Ensure references like "Bucket 1" and "typo" in the surrounding text
are updated to reflect the correct bucket numbering and example.
In `@resources/migration/previous_docs_version.mdx`:
- Line 99: Summary: There's an extra double space before the word "work" in the
sentence containing `npx serve`. Fix: locate the sentence fragment that reads
"The above example uses Python to launch a local server, but alternatives such
as `npx serve` work equally well." and remove the extra space between the
backticked `npx serve` and "work" so it reads "...`npx serve` work equally
well." Ensure only a single space remains.
In `@resources/self_hosting/deployment/azure.mdx`:
- Around line 95-112: The heredoc using "sudo cat << EOF >
/etc/systemd/system/meilisearch.service" will fail due to shell redirection
happening before sudo; replace that pattern with a command that writes the
heredoc as root (e.g., using sudo tee) so the file
/etc/systemd/system/meilisearch.service is created with the intended contents
(the [Unit]/[Service]/[Install] block including
ExecStart=/usr/local/bin/meilisearch --config-file-path /etc/meilisearch.toml,
WorkingDirectory=/var/lib/meilisearch, User=meilisearch, Group=meilisearch,
Restart=on-failure and WantedBy=multi-user.target) and ensure
permissions/ownership are correct after creation.
- Around line 156-168: The heredoc uses "sudo cat << EOF > ..." to write the
Nginx server block (the block that creates the meilisearch site file), which
fails because the redirection is performed by the non-root shell; replace that
heredoc line with a root-capable write approach such as piping into sudo tee or
running the heredoc under sudo shell (e.g., use "sudo tee meilisearch >
/dev/null << 'EOF'" or "sudo bash -c 'cat > meilisearch << EOF'") so the nginx
site file is written with root permissions and keep the rest of the server { ...
} block unchanged.
In `@resources/self_hosting/deployment/digitalocean.mdx`:
- Around line 127-134: Add a systemctl daemon-reload immediately after writing
the systemd unit (/etc/systemd/system/meilisearch.service) and before calling
systemctl enable meilisearch and systemctl start meilisearch so systemd sees the
new unit; update the section around the systemd commands to run systemctl
daemon-reload then systemctl enable meilisearch then systemctl start
meilisearch.
- Around line 184-193: The nginx server block currently uses a catch-all host
(server_name _) which prevents certbot --nginx from finding a domain-specific
block to update; edit the server block so the server_name directive (replace the
current "server_name _;") is set to your real hostname (e.g., yourdomain.com or
www.yourdomain.com) or a variable placeholder like YOUR_HOSTNAME, ensuring the
block that contains proxy_pass http://localhost:7700; matches the actual domain
you will request a certificate for.
In `@resources/self_hosting/deployment/gcp.mdx`:
- Around line 95-112: The here-doc that writes the meilisearch systemd unit uses
shell redirection with sudo (sudo cat << EOF >
/etc/systemd/system/meilisearch.service) which fails because the redirection
runs without privileges; update the documentation block that creates
meilisearch.service so the file is written with elevated privileges (e.g. use
sudo tee to write to /etc/systemd/system/meilisearch.service or wrap the
redirection in sudo bash -c) and keep the unit contents and fields (Description,
After, Type, WorkingDirectory, ExecStart, User, Group, Restart, WantedBy)
unchanged.
- Around line 154-165: The here-document uses a redirection that won’t be
elevated by sudo (the line starting with sudo cat << EOF >
/etc/nginx/sites-enabled/meilisearch), so replace that approach with an
elevated-write method (e.g., use sudo tee or sudo sh -c to write
/etc/nginx/sites-enabled/meilisearch) and preserve the surrounding nginx server
block contents exactly (the server { listen 80 ... proxy_pass
http://localhost:7700; } block); also quote the EOF delimiter to avoid
unintended shell variable expansion if needed.
---
Outside diff comments:
In `@docs.json`:
- Around line 935-938: This redirect entry with source
"/reference/features/authentication" currently points to
"/learn/security/master_api_keys", creating a redirect chain because
"/learn/security/master_api_keys" itself redirects to
"/learn/security/basic_security"; update the destination field for the entry
that has source "/reference/features/authentication" to point directly to the
final target "/learn/security/basic_security" to eliminate the chain.
- Around line 999-1002: The redirect entry with "source":
"/learn/advanced/filtering" has an incorrect "destination" value prefixed with
"docs/"; update the "destination" string in that object (the key named
destination) to start with a leading slash like
"/learn/filtering_and_sorting/filter_search_results" to match other redirects
and avoid a broken path.
- Around line 1351-1354: The redirect entry with "source":
"/learn/what_is_meilisearch/overview#alternatives" currently points to an
intermediate "destination":
"/learn/what_is_meilisearch/comparison_to_alternatives" which creates a redirect
chain; update this entry so its "destination" is the final URL
"/resources/help/comparison_to_alternatives" (the same final target used by the
existing redirect at lines referencing
"/learn/what_is_meilisearch/comparison_to_alternatives") to eliminate the extra
hop and avoid the chain.
- Around line 1107-1110: The redirect entry with "source":
"/learn/cookbooks/gcp" currently points to "/guides/deployment/gcp" causing a
redirect chain; update its "destination" value to the canonical page
"resources/self_hosting/deployment/gcp" so the redirect goes directly to the
dedicated GCP deployment page and avoids the intermediate
"/guides/deployment/gcp" -> "/guides/running_production" chain.
- Around line 1091-1098: The redirects in docs.json map "/learn/cookbooks/aws"
and "/learn/cookbooks/azure" to non-existent destinations
"/guides/deployment/aws" and "/guides/deployment/azure"; update those
destination values to the current pages under resources/self_hosting/deployment
(e.g., change the destination for "/learn/cookbooks/aws" to
"/resources/self_hosting/deployment/aws" and for "/learn/cookbooks/azure" to
"/resources/self_hosting/deployment/azure") so the redirects point to the actual
deployment pages.
---
Nitpick comments:
In `@docs.json`:
- Around line 83-85: The footer entry with "label": "Comparisons" currently has
an outdated "href" value pointing to
/learn/what_is_meilisearch/comparison_to_alternatives; update that object's
"href" to the canonical path (either /resources/help/comparison_to_alternatives)
or the new overview (/resources/comparisons/alternatives) so the footer points
to the non-redirecting URL; locate the JSON object with "label": "Comparisons"
and replace its "href" string accordingly.
- Around line 861-872: The navigation lists two potentially overlapping pages:
"resources/comparisons/alternatives" and
"resources/help/comparison_to_alternatives"; decide whether they are distinct
(overview vs. deep-dive) or redundant, then either rename one to make purpose
explicit (e.g., "resources/comparisons/alternatives_overview" or
"resources/help/alternatives_deep_dive") and update all nav entries that
reference those slugs, or consolidate by removing one entry and merging content
into the remaining page; update the "Comparisons" and "Help" group arrays in
docs.json and any internal links/redirects to use the chosen canonical slug so
navigation and content remain consistent.
In `@resources/comparisons/alternatives.mdx`:
- Line 260: Update the sentence "Since Lucene is the technology behind many open
source or closed source search engines, it is considered as the reference search
library." by hyphenating the compound adjectives and removing the extraneous
"as": change "open source" to "open-source", "closed source" to "closed-source",
and remove "as" after "considered" so the phrase reads "...it is considered the
reference search library." Use this exact wording change where the sentence
appears in the alternatives.mdx content.
In `@resources/comparisons/mongodb.mdx`:
- Line 7: Update the opening sentence "MongoDB Atlas Search integrates Apache
Lucene-based full-text search directly into MongoDB Atlas. It allows searching
MongoDB collections without a separate search infrastructure, using familiar
MongoDB Query API syntax." to explicitly mention the aggregation pipeline
instead of the broader "Query API syntax" — e.g., replace "using familiar
MongoDB Query API syntax" with "via the MongoDB aggregation pipeline" and ensure
the intro wording aligns with the later description that references the
aggregation pipeline.
In `@resources/comparisons/typesense.mdx`:
- Line 26: Replace the roadmap phrasing "is adding field boosting support" in
resources/comparisons/typesense.mdx with a statement of current behavior or a
link to a tracked issue/release note; specifically update the sentence that
contrasts Typesense field boosting with Meilisearch (the line referencing field
boosting) to either describe Meilisearch's present capabilities (e.g., it uses
searchable attributes ordering and does not yet support field boosting) or
append a link to an official issue/release note that tracks the planned feature
so the copy remains accurate over time.
In `@resources/demos/saas.mdx`:
- Around line 41-52: The example multi-search JSON is missing the "activities"
query referenced in the intro/table; update the sample in the Multi-search
request example so the "queries" array includes an entry for { "indexUid":
"activities", "q": "acme" } to match the page text (or explicitly annotate the
snippet as abbreviated), ensuring the requests shown in the examples align with
the described indexes (contacts, companies, deals, activities).
In `@resources/demos/voice_search.mdx`:
- Around line 64-75: Replace the hard-coded vendor API with a standard API
fallback: detect SpeechRecognition via window.SpeechRecognition ||
window.webkitSpeechRecognition, guard if null, then instantiate (e.g., const
Recognition = window.SpeechRecognition || window.webkitSpeechRecognition; const
recognition = new Recognition();), keep the existing property assignments
(continuous, interimResults), onresult handler that calls
searchMeilisearch(transcript), and only call recognition.start() when the API
exists to ensure broader browser compatibility.
In `@resources/migration/previous_docs_version.mdx`:
- Line 29: Update the sentence that reads "downloading the documentation
repository into your local machine" in
resources/migration/previous_docs_version.mdx (the line starting "To access
previous versions...") to use the correct preposition by replacing "into your
local machine" with "onto your local machine".
- Line 23: Update the "[Node v14](https://nodejs.org/en/)" entry: either change
it to a supported Node LTS version (e.g., "Node v18 LTS") if newer versions are
compatible, or keep "Node v14" but append a brief explanatory note that v14 is
EOL and is only required for legacy VuePress v0.17–v1.1 compatibility, including
a short reason and any workaround (e.g., using nvm to install v14) so readers
know why the deprecated version is listed.
- Around line 59-101: Normalize version-range formatting across headings and the
warning: change ">= v1.2: read `.mdx` files" to a consistent phrase like "v1.2
and later: read `.mdx` files" and make all other ranges use the same delimiter
style (e.g., "v0.17 - v1.1", "v0.11 - v0.16", "v0.8 - v0.10"); update the
Warning text that currently says "v0.17 - v1.1" to match the chosen style and
ensure all section headings ("v0.17-v1.1: run a local Vuepress server",
"v0.11-v0.16: run a simple Python server", "v0.8 to v0.10: read markdown source
files") use that same format for consistency.
In `@resources/self_hosting/deployment/digitalocean.mdx`:
- Line 94: Replace the legacy link in the sentence "Remember to choose a [safe
master
key](/learn/security/basic_security#creating-the-master-key-in-a-self-hosted-instance)..."
with the canonical Resources URL for the moved self-hosting page (update the
target after the [safe master key] link to the new /resources/self-hosting/...
path and preserve the same fragment
`#creating-the-master-key-in-a-self-hosted-instance`); change the href only, keep
the link text unchanged and apply the same replacement wherever that legacy URL
appears.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 149a7e98-813a-4de9-84cd-38661acd35cf
📒 Files selected for processing (34)
docs.jsonlearn/indexing/optimize_indexing_performance.mdxresources/comparisons/algolia.mdxresources/comparisons/alternatives.mdxresources/comparisons/elasticsearch.mdxresources/comparisons/mongodb.mdxresources/comparisons/opensearch.mdxresources/comparisons/pinecone.mdxresources/comparisons/postgresql.mdxresources/comparisons/qdrant.mdxresources/comparisons/typesense.mdxresources/demos/ecommerce.mdxresources/demos/flickr.mdxresources/demos/geosearch.mdxresources/demos/moma.mdxresources/demos/music.mdxresources/demos/nobel_prizes.mdxresources/demos/overview.mdxresources/demos/rubygems.mdxresources/demos/saas.mdxresources/demos/tenant_tokens.mdxresources/demos/typo_tolerance.mdxresources/demos/voice_search.mdxresources/demos/where_to_watch.mdxresources/internals/bucket_sort.mdxresources/internals/hannoy.mdxresources/migration/previous_docs_version.mdxresources/self_hosting/deployment/aws.mdxresources/self_hosting/deployment/azure.mdxresources/self_hosting/deployment/digitalocean.mdxresources/self_hosting/deployment/gcp.mdxresources/self_hosting/performance/ram_multithreading.mdxresources/self_hosting/security/http2_ssl.mdxresources/self_hosting/security/master_api_keys.mdx
✅ Files skipped from review due to trivial changes (13)
- resources/self_hosting/performance/ram_multithreading.mdx
- resources/self_hosting/deployment/aws.mdx
- resources/demos/geosearch.mdx
- resources/demos/typo_tolerance.mdx
- resources/demos/nobel_prizes.mdx
- resources/comparisons/qdrant.mdx
- resources/demos/rubygems.mdx
- resources/demos/music.mdx
- resources/self_hosting/security/master_api_keys.mdx
- resources/demos/moma.mdx
- resources/demos/flickr.mdx
- resources/demos/tenant_tokens.mdx
- resources/internals/hannoy.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
- learn/indexing/optimize_indexing_performance.mdx
There was a problem hiding this comment.
🧹 Nitpick comments (2)
resources/self_hosting/supported_os.mdx (1)
35-35: Consider tightening the final troubleshooting sentence.Line 35 can be slightly more direct by replacing “is not compatible” with “is incompatible.”
✏️ Optional wording tweak
-If the provided [binaries](https://github.com/meilisearch/meilisearch/releases) do not work on your operating system, try building Meilisearch [from source](/resources/self_hosting/install_meilisearch_locally#local-installation). If compilation fails, Meilisearch is not compatible with your machine. +If the provided [binaries](https://github.com/meilisearch/meilisearch/releases) do not work on your operating system, try building Meilisearch [from source](/resources/self_hosting/install_meilisearch_locally#local-installation). If compilation fails, Meilisearch is incompatible with your machine.As per coding guidelines, "Prefer short, direct sentences and avoid jargon when a simpler term exists in documentation."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/self_hosting/supported_os.mdx` at line 35, Replace the final troubleshooting sentence in supported_os.mdx that currently reads “If compilation fails, Meilisearch is not compatible with your machine.” with a tighter, more direct version such as “If compilation fails, Meilisearch is incompatible with your machine.” — update the exact sentence text in the file (the line referencing binaries and building from source) so wording changes from “is not compatible” to “is incompatible.”resources/help/faq.mdx (1)
137-137: Split this sentence for readability and tone consistency.The line is dense and harder to scan in FAQ format. Consider splitting it into two shorter sentences.
✂️ Suggested rewrite
-You can read more about what metrics we collect, why we collect them, and how to disable it on our [telemetry page](/resources/help/telemetry). Issues of transparency and privacy are very important to us, so if you feel we are lacking in this area please [open an issue](https://github.com/meilisearch/documentation/issues/new/choose) or send an email to our dedicated email address: [privacy@meilisearch.com](mailto:privacy@meilisearch.com). +You can read more about what metrics we collect, why we collect them, and how to disable it on our [telemetry page](/resources/help/telemetry). Transparency and privacy are important to us. +If you feel we are lacking in this area, please [open an issue](https://github.com/meilisearch/documentation/issues/new/choose) or email us at [privacy@meilisearch.com](mailto:privacy@meilisearch.com).As per coding guidelines, "Prefer shorter sentences; if a sentence runs over approximately 40 words, consider splitting or simplifying" and "Prefer short, direct sentences and avoid jargon when a simpler term exists in documentation."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/help/faq.mdx` at line 137, The long sentence describing telemetry and contact options should be split into two shorter, clearer sentences: first state that readers can learn which metrics are collected, why, and how to disable them with a link to the telemetry page (keep the [telemetry page](/resources/help/telemetry) link), and second state that transparency and privacy are important and provide the two contact options (the GitHub issue link and privacy@meilisearch.com) as a separate sentence; update the existing sentence in the FAQ content (the telemetry/contacts line) to reflect this split for improved readability and tone.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@resources/help/faq.mdx`:
- Line 137: The long sentence describing telemetry and contact options should be
split into two shorter, clearer sentences: first state that readers can learn
which metrics are collected, why, and how to disable them with a link to the
telemetry page (keep the [telemetry page](/resources/help/telemetry) link), and
second state that transparency and privacy are important and provide the two
contact options (the GitHub issue link and privacy@meilisearch.com) as a
separate sentence; update the existing sentence in the FAQ content (the
telemetry/contacts line) to reflect this split for improved readability and
tone.
In `@resources/self_hosting/supported_os.mdx`:
- Line 35: Replace the final troubleshooting sentence in supported_os.mdx that
currently reads “If compilation fails, Meilisearch is not compatible with your
machine.” with a tighter, more direct version such as “If compilation fails,
Meilisearch is incompatible with your machine.” — update the exact sentence text
in the file (the line referencing binaries and building from source) so wording
changes from “is not compatible” to “is incompatible.”
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e9310954-fc68-4fa1-93ef-1866fd97f85f
📒 Files selected for processing (5)
learn/indexing/optimize_indexing_performance.mdxlearn/security/tenant_tokens.mdxreference/errors/error_codes.mdxresources/help/faq.mdxresources/self_hosting/supported_os.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
- reference/errors/error_codes.mdx
- learn/indexing/optimize_indexing_performance.mdx
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (4)
resources/demos/ecommerce.mdx (1)
15-15: Prefer "for example" over "e.g." per coding guidelines.✏️ Suggested fix
-- **Disjunctive facets**: Select multiple values within a category (e.g., multiple brands) +- **Disjunctive facets**: Select multiple values within a category (for example, multiple brands)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/demos/ecommerce.mdx` at line 15, Replace the abbreviation "e.g." with the phrase "for example" in the Disjunctive facets description—specifically update the string "**Disjunctive facets**: Select multiple values within a category (e.g., multiple brands)" to use "for example" instead of "e.g." so it reads "(for example, multiple brands)"; ensure punctuation and spacing remain correct around the replacement.resources/comparisons/alternatives.mdx (2)
244-244: Tighten small style issues (spacing and compound adjectives)There are a few copy-edit fixes: double space at Line 244, and hyphenation at Line 260 and Line 312.
Suggested fix
-... available via [Meilisearch Cloud](https://meilisearch.com/cloud?utm_campaign=oss&utm_source=docs&utm_medium=comparison) or self-hosted. +... available via [Meilisearch Cloud](https://meilisearch.com/cloud?utm_campaign=oss&utm_source=docs&utm_medium=comparison) or self-hosted. -Since Lucene is the technology behind many open source or closed source search engines... +Since Lucene is the technology behind many open-source or closed-source search engines... -... a very large full text-based database. +... a very large full-text-based database.As per coding guidelines, use one space between words and one space after sentence-ending punctuation before the next sentence.
Also applies to: 260-260, 312-312
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/comparisons/alternatives.mdx` at line 244, Fix spacing and hyphenation issues in the comparisons text: remove the double space between "Cloud](https://meilisearch.com/cloud?utm_campaign=oss&utm_source=docs&utm_medium=comparison) or self-hosted" so there is a single space before "self-hosted", and enforce correct compound adjective hyphenation where used elsewhere (search-usage and Pro-tier or similar phrasing) so compound modifiers use hyphens consistently (e.g., change "search usage" to "search-usage" only where it modifies a noun, and "Pro tier" to "Pro-tier" if used as a modifier); update the sentences containing "Meilisearch pricing" and the Pro tier sentence to use one space after sentence-ending punctuation and correct hyphenation accordingly.
8-17: Use neutral voice to match docs toneThis page repeatedly uses first-person phrasing (
we,our). Consider neutral phrasing for consistency with the rest of the docs.Example rewrite (intro)
-In this article, we'll go over the differences between Meilisearch and other search engines: +This article compares Meilisearch with other search engines: -- In the [comparison table](`#comparison-table`), we present a general overview ... +- The [comparison table](`#comparison-table`) provides a general overview ... -- In the [approach comparison](`#approach-comparison`), instead, we focus on ... +- The [approach comparison](`#approach-comparison`) section focuses on ...As per coding guidelines, avoid first person pronouns in general documentation and prefer short, direct sentences.
Also applies to: 320-324
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/comparisons/alternatives.mdx` around lines 8 - 17, The intro and related sections ("comparison table", "approach comparison", "a quick look at the search engine landscape") use first-person phrasing ("we", "our"); rewrite those sentences to a neutral, third-person or passive voice and shorten them for clarity (e.g., "This article compares Meilisearch with other search engines" instead of "we'll go over the differences"), remove occurrences of "we" and "our" across the page (also noted around the later section referenced), and ensure consistent neutral tone throughout the document.resources/self_hosting/deployment/digitalocean.mdx (1)
94-94: Update this security link to the Resources path.This page was added under
resources/, but this link still targets/learn/....As per coding guidelines: "When adding or moving content, update or add links from related pages so users can find it."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/self_hosting/deployment/digitalocean.mdx` at line 94, Update the hardcoded "/learn/..." link target in the sentence that currently contains "/learn/security/basic_security#creating-the-master-key-in-a-self-hosted-instance" so it points to the equivalent Resources path (e.g., the resources-level URL or correct relative path under resources where the "basic_security" anchor now lives); edit the Markdown link target in resources/self_hosting/deployment/digitalocean.mdx to replace the old href with the Resources path so the link resolves from the new file location.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@resources/comparisons/alternatives.mdx`:
- Line 12: Replace all occurrences of the incorrect product capitalization
"ElasticSearch" with the official "Elasticsearch" throughout the document,
including the inline link text in the sentence that references the approach
comparison and the section anchor/heading "meilisearch-vs-elasticsearch" so the
visible text and any link labels use the correct spelling.
In `@resources/self_hosting/configuration.mdx`:
- Line 601: Convert the fragment-style option descriptions into full descriptive
sentences for consistency: for the entry mentioning the CONTAINS filter
operator, replace the fragment with two sentences such as "Enables the CONTAINS
filter operator at launch. It can also be toggled at runtime via the
/experimental-features API route." Apply the same pattern to the other two
option descriptions that currently use imperative/fragments (the nearby entries
referencing experimental toggles) so all three match the surrounding
full-sentence style and simple wording.
In `@resources/self_hosting/deployment/digitalocean.mdx`:
- Line 213: The sentence "Use [certbot](https://certbot.eff.org/) to configure
enable HTTPS in your server." is ungrammatical; replace it with a short, direct
phrasing such as "Use certbot (https://certbot.eff.org/) to enable HTTPS on your
server." — locate the exact sentence token "Use
[certbot](https://certbot.eff.org/) to configure enable HTTPS in your server."
and update it to the corrected wording, preserving the existing certbot link and
punctuation.
- Around line 24-29: The guide mixes privilege styles (some commands like "apt
update" / "apt install curl -y" are shown without sudo while others use
"sudo")—add a single clear sentence after the "Prerequisites" header stating
whether the guide assumes root shell or a regular user requiring sudo (and which
prompt style you use, e.g., "#" for root or "$" for user), then make the
commands consistent: either remove "sudo" from the few commands that have it (so
all commands are root-style) or add "sudo" to all privileged commands (including
the instances currently using bare apt/ufw/systemctl) so every privileged action
follows the stated convention; ensure the sudo-consistent commands and the
prompt guidance are updated in the same sections that include package
installation (e.g., the "apt update"/"apt install curl -y" block) and the
currently sudo'd commands to keep copy-paste workflows unambiguous.
In `@resources/self_hosting/deployment/gcp.mdx`:
- Around line 155-160: The Nginx server block uses a catch-all "server_name _;"
which prevents certbot from matching the requested domain; update the server
block created by the heredoc (the block containing "server_name _;" and
"location / {") to use your real domain name(s) (e.g., "server_name example.com
www.example.com;") so certbot --nginx can find and modify the correct server
block during certificate issuance.
- Around line 117-119: After creating the new systemd unit file for Meilisearch,
run systemctl daemon-reload before enabling/starting the service so systemd
picks up the new unit; update the sequence around the unit-file creation to call
"systemctl daemon-reload" prior to "systemctl enable meilisearch" and "systemctl
start meilisearch" to ensure the unit is detected and commands succeed.
---
Nitpick comments:
In `@resources/comparisons/alternatives.mdx`:
- Line 244: Fix spacing and hyphenation issues in the comparisons text: remove
the double space between
"Cloud](https://meilisearch.com/cloud?utm_campaign=oss&utm_source=docs&utm_medium=comparison)
or self-hosted" so there is a single space before "self-hosted", and enforce
correct compound adjective hyphenation where used elsewhere (search-usage and
Pro-tier or similar phrasing) so compound modifiers use hyphens consistently
(e.g., change "search usage" to "search-usage" only where it modifies a noun,
and "Pro tier" to "Pro-tier" if used as a modifier); update the sentences
containing "Meilisearch pricing" and the Pro tier sentence to use one space
after sentence-ending punctuation and correct hyphenation accordingly.
- Around line 8-17: The intro and related sections ("comparison table",
"approach comparison", "a quick look at the search engine landscape") use
first-person phrasing ("we", "our"); rewrite those sentences to a neutral,
third-person or passive voice and shorten them for clarity (e.g., "This article
compares Meilisearch with other search engines" instead of "we'll go over the
differences"), remove occurrences of "we" and "our" across the page (also noted
around the later section referenced), and ensure consistent neutral tone
throughout the document.
In `@resources/demos/ecommerce.mdx`:
- Line 15: Replace the abbreviation "e.g." with the phrase "for example" in the
Disjunctive facets description—specifically update the string "**Disjunctive
facets**: Select multiple values within a category (e.g., multiple brands)" to
use "for example" instead of "e.g." so it reads "(for example, multiple
brands)"; ensure punctuation and spacing remain correct around the replacement.
In `@resources/self_hosting/deployment/digitalocean.mdx`:
- Line 94: Update the hardcoded "/learn/..." link target in the sentence that
currently contains
"/learn/security/basic_security#creating-the-master-key-in-a-self-hosted-instance"
so it points to the equivalent Resources path (e.g., the resources-level URL or
correct relative path under resources where the "basic_security" anchor now
lives); edit the Markdown link target in
resources/self_hosting/deployment/digitalocean.mdx to replace the old href with
the Resources path so the link resolves from the new file location.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 31168403-2a4d-4b0d-a3d4-21ffd742c1e9
📒 Files selected for processing (12)
learn/getting_started/documents.mdxresources/comparisons/alternatives.mdxresources/comparisons/elasticsearch.mdxresources/comparisons/typesense.mdxresources/demos/ecommerce.mdxresources/demos/overview.mdxresources/internals/bucket_sort.mdxresources/migration/previous_docs_version.mdxresources/self_hosting/configuration.mdxresources/self_hosting/deployment/azure.mdxresources/self_hosting/deployment/digitalocean.mdxresources/self_hosting/deployment/gcp.mdx
🚧 Files skipped from review as they are similar to previous changes (7)
- resources/self_hosting/deployment/azure.mdx
- resources/demos/overview.mdx
- learn/getting_started/documents.mdx
- resources/migration/previous_docs_version.mdx
- resources/comparisons/typesense.mdx
- resources/comparisons/elasticsearch.mdx
- resources/internals/bucket_sort.mdx
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
resources/help/comparison_to_alternatives.mdx (2)
53-53:⚠️ Potential issue | 🟡 MinorExtra pipe character creates malformed table cell.
The Rails row has a trailing
||creating an unintended empty column.Proposed fix
-| [Rails](https://github.com/meilisearch/meilisearch-rails) | ✅ | ✅ | 🔶 <br />WIP | ✅ || +| [Rails](https://github.com/meilisearch/meilisearch-rails) | ✅ | ✅ | 🔶 <br />WIP | ✅ |🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/help/comparison_to_alternatives.mdx` at line 53, The Rails table row contains an extra trailing pipe "||" that creates an unintended empty column; edit the row string (the Rails row: "| [Rails](https://github.com/meilisearch/meilisearch-rails) | ✅ | ✅ | 🔶 <br />WIP | ✅ ||") to remove the extra pipe so it ends with a single "|" (i.e., remove the final extra "|") ensuring the Markdown table columns align correctly.
1-6:⚠️ Potential issue | 🟡 MinorTwo similar comparison files exist with largely duplicate content — consolidate or clarify purpose.
resources/comparisons/alternatives.mdx(324 lines) andresources/help/comparison_to_alternatives.mdx(291 lines) share nearly identical comparison tables and landscape analysis. The main structural difference is thatalternatives.mdxincludes a "Detailed comparisons" CardGroup section (lines 20–49) linking to dedicated guides, whilecomparison_to_alternatives.mdxomits it entirely.Minor inconsistencies also exist:
- Line 53 in
comparison_to_alternatives.mdx: trailing pipe||in the Rails SDK row (formatting error)- Line 127: different monitoring dashboard URL path between files
If both files are intentional (serving different audiences or navigation structures), document why. Otherwise, consolidate them and redirect as needed.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/help/comparison_to_alternatives.mdx` around lines 1 - 6, The two near-duplicate docs (the one titled "Comparison to alternatives" and the other "Alternatives") must be reconciled: either consolidate content into a single canonical doc and add a redirect from the other, or keep both but add a short explanatory note at the top describing their distinct purposes and audience. While reconciling, ensure the "Detailed comparisons" CardGroup section present in the "Alternatives" doc is intentionally included or explicitly omitted from "Comparison to alternatives"; add it to the latter if you want the same navigation. Fix the formatting and content inconsistencies: remove the trailing pipe from the Rails SDK table row (the malformed "||") and standardize the monitoring dashboard URL path so both docs point to the same path; update links and link titles accordingly. Finally, add a brief comment in the chosen canonical doc explaining why the other file still exists (or delete and add an HTTP redirect) so future authors understand the intent.
♻️ Duplicate comments (3)
resources/comparisons/alternatives.mdx (2)
322-322:⚠️ Potential issue | 🟡 MinorUse official capitalization:
ElasticsearchLine 322 uses
ElasticSearchinstead ofElasticsearch.Proposed fix
-Usually, when a developer is looking for a search tool to integrate into their application, they will go for ElasticSearch or less effective choices. +Usually, when a developer is looking for a search tool to integrate into their application, they will go for Elasticsearch or less effective choices.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/comparisons/alternatives.mdx` at line 322, Replace the incorrect capitalization "ElasticSearch" with the official "Elasticsearch" in the text block that mentions search tools (the string "ElasticSearch" appears in the sentence starting "Usually, when a developer is looking for a search tool..."); update that exact token to "Elasticsearch" so the product name uses the official casing throughout the file resources/comparisons/alternatives.mdx.
12-12:⚠️ Potential issue | 🟡 MinorUse official capitalization:
ElasticsearchLine 12 uses
ElasticSearchinstead of the official spellingElasticsearch. As per coding guidelines, spell technical and product names as in official sources.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/comparisons/alternatives.mdx` at line 12, The text uses the incorrect product capitalization "ElasticSearch"; update the copy to use the official spelling "Elasticsearch" wherever referenced (for example in the phrase linking to the Meilisearch vs Elasticsearch section and any anchors like "meilisearch-vs-elasticsearch" or heading text), ensuring consistency across the document.resources/help/comparison_to_alternatives.mdx (1)
12-12:⚠️ Potential issue | 🟡 MinorUse official capitalization:
ElasticsearchSame issue as in
resources/comparisons/alternatives.mdx- usesElasticSearchinstead of the officialElasticsearch.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@resources/help/comparison_to_alternatives.mdx` at line 12, The text uses the incorrect capitalization "ElasticSearch" — update the occurrence in resources/help/comparison_to_alternatives.mdx (the sentence containing "Meilisearch measures up against [ElasticSearch](`#meilisearch-vs-elasticsearch`)") to the official product name "Elasticsearch" (and update the link text if necessary) so the displayed text reads "Elasticsearch" while preserving the existing anchor/URL.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@resources/migration/algolia_migration.mdx`:
- Line 62: The install line currently pulls the latest algoliasearch (v5) while
the document and examples use v4 patterns (require("algoliasearch"),
initIndex(), index methods), so either pin the dependency to algoliasearch@4.13
in the npm install command or update all examples to v5 usage: replace CommonJS
default require and initIndex() patterns with the v5 client API (named import /
create client and call methods on the client directly instead of initIndex()).
Ensure references to require("algoliasearch"), initIndex(), and index-object
methods are updated consistently to the chosen approach.
---
Outside diff comments:
In `@resources/help/comparison_to_alternatives.mdx`:
- Line 53: The Rails table row contains an extra trailing pipe "||" that creates
an unintended empty column; edit the row string (the Rails row: "|
[Rails](https://github.com/meilisearch/meilisearch-rails) | ✅ | ✅ | 🔶 <br />WIP
| ✅ ||") to remove the extra pipe so it ends with a single "|" (i.e., remove the
final extra "|") ensuring the Markdown table columns align correctly.
- Around line 1-6: The two near-duplicate docs (the one titled "Comparison to
alternatives" and the other "Alternatives") must be reconciled: either
consolidate content into a single canonical doc and add a redirect from the
other, or keep both but add a short explanatory note at the top describing their
distinct purposes and audience. While reconciling, ensure the "Detailed
comparisons" CardGroup section present in the "Alternatives" doc is
intentionally included or explicitly omitted from "Comparison to alternatives";
add it to the latter if you want the same navigation. Fix the formatting and
content inconsistencies: remove the trailing pipe from the Rails SDK table row
(the malformed "||") and standardize the monitoring dashboard URL path so both
docs point to the same path; update links and link titles accordingly. Finally,
add a brief comment in the chosen canonical doc explaining why the other file
still exists (or delete and add an HTTP redirect) so future authors understand
the intent.
---
Duplicate comments:
In `@resources/comparisons/alternatives.mdx`:
- Line 322: Replace the incorrect capitalization "ElasticSearch" with the
official "Elasticsearch" in the text block that mentions search tools (the
string "ElasticSearch" appears in the sentence starting "Usually, when a
developer is looking for a search tool..."); update that exact token to
"Elasticsearch" so the product name uses the official casing throughout the file
resources/comparisons/alternatives.mdx.
- Line 12: The text uses the incorrect product capitalization "ElasticSearch";
update the copy to use the official spelling "Elasticsearch" wherever referenced
(for example in the phrase linking to the Meilisearch vs Elasticsearch section
and any anchors like "meilisearch-vs-elasticsearch" or heading text), ensuring
consistency across the document.
In `@resources/help/comparison_to_alternatives.mdx`:
- Line 12: The text uses the incorrect capitalization "ElasticSearch" — update
the occurrence in resources/help/comparison_to_alternatives.mdx (the sentence
containing "Meilisearch measures up against
[ElasticSearch](`#meilisearch-vs-elasticsearch`)") to the official product name
"Elasticsearch" (and update the link text if necessary) so the displayed text
reads "Elasticsearch" while preserving the existing anchor/URL.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ae2277bf-e488-47ae-a9c6-576ea8a05a4d
📒 Files selected for processing (20)
docs.jsonguides/laravel_scout.mdxhome.mdxlearn/getting_started/what_is_meilisearch.mdxlearn/indexing/multilingual-datasets.mdxlearn/indexing/optimize_indexing_performance.mdxlearn/relevancy/displayed_searchable_attributes.mdxreference/errors/error_codes.mdxresources/comparisons/algolia.mdxresources/comparisons/alternatives.mdxresources/comparisons/elasticsearch.mdxresources/comparisons/mongodb.mdxresources/comparisons/opensearch.mdxresources/comparisons/pinecone.mdxresources/comparisons/qdrant.mdxresources/comparisons/typesense.mdxresources/help/comparison_to_alternatives.mdxresources/help/faq.mdxresources/internals/prefix.mdxresources/migration/algolia_migration.mdx
✅ Files skipped from review due to trivial changes (2)
- resources/comparisons/pinecone.mdx
- guides/laravel_scout.mdx
🚧 Files skipped from review as they are similar to previous changes (6)
- resources/comparisons/elasticsearch.mdx
- resources/comparisons/opensearch.mdx
- resources/comparisons/qdrant.mdx
- learn/getting_started/what_is_meilisearch.mdx
- resources/internals/prefix.mdx
- learn/indexing/optimize_indexing_performance.mdx
|
The demos section contains wrong info. For instance, it says that where2watch showcases faceted filtering, which it doesn't. It does showcase the |
Move 28 documentation pages into a new Resources tab with four groups: - Self-hosting (9 files + 3 data backup files) - Migration (3 files) - Help (9 files) - Internals (4 files) Update docs.json with new Resources tab, remove old groups from Learn and Guides tabs, add 28 redirects for old paths, and update 27 existing redirects to avoid chains. Update internal links across 39 MDX files to reflect new paths. Fix content accuracy issues found by cross-referencing with source: - configuration.mdx: fix payload limit default, add 9 missing experimental CLI flags - known_limitations.mdx: fix filter depth (2000->200), task DB size (10->20GiB) - webhooks.mdx: fix payload format to nested JSON, add batchUid - snapshots.mdx: fix first snapshot timing, wrong link anchor - experimental_features_overview.mdx: add 5 missing features, remove non-existent vector store entry - algolia_migration.mdx: fix facets mapping, batch size, separator support - prefix.mdx: add missing prefixSearch setting - datatypes.mdx: update charabia version link - install_meilisearch_locally.mdx: update Docker tag v1.16->v1.37 - updating.mdx: fix heading level - faq.mdx: fix invalid JSON trailing comma Entire-Checkpoint: 9c68757644a6
Add 30 new pages from documentation_fork: - resources/comparisons/ (9 files): individual product comparisons - resources/demos/ (13 files): feature showcase and use case demos - resources/self_hosting/deployment/ (4 files): AWS, GCP, Azure, DigitalOcean - resources/self_hosting/security/master_api_keys.mdx - resources/internals/bucket_sort.mdx, hannoy.mdx - resources/migration/previous_docs_version.mdx Restructure self_hosting to use subdirectories: - http2_ssl.mdx → security/http2_ssl.mdx - ram_multithreading_performance.mdx → performance/ram_multithreading.mdx Update docs.json nav with Demos, Comparisons groups and Deployment, Security, Performance subgroups. Fix fork-style links (/products/, /getting_started/) to match current repo paths. Fix broken glossary links in hannoy.mdx. Entire-Checkpoint: 9c68757644a6
Step-by-step guide covering data export (Scroll API), vector strategy (re-embed vs keep existing), data preparation, import, and embedder configuration. Includes comprehensive comparison tables for concepts, indexing, search parameters, and API methods. Query examples show vector search, hybrid search, filtered search, geo search, and faceted search. Code examples in JavaScript, Python, and Ruby. Entire-Checkpoint: 9c68757644a6
Points are vector-first (vector + metadata), Documents are content-first (fields + optional vectors). Also note that importing vectors is optional since Meilisearch can auto-generate them. Entire-Checkpoint: 9c68757644a6
Rewrite query comparison to use natural language queries instead of raw vectors, emphasizing that Meilisearch handles embedding automatically. Add full-text search example. Move userProvided embedder option into an Accordion as a secondary alternative. Update What you gain section to lead with no-more-client-side-embedding benefit. Entire-Checkpoint: 9c68757644a6
MongoDB guide covers data export via find(), ObjectId conversion, geo data transformation, aggregation pipeline to REST API comparison, and Atlas Vector Search to hybrid search migration with auto-embedder. PostgreSQL guide covers data export via SELECT, tsvector/tsquery to automatic indexing comparison, pgvector to auto-embedder migration, PostGIS to _geo conversion, and a keeping-data-in-sync section for the recommended PostgreSQL + Meilisearch pattern. Both guides include JavaScript, Python, and Ruby code examples, full settings/query comparison tables, and side-by-side query examples. Also links both guides from their respective comparison pages. Entire-Checkpoint: 9c68757644a6
Step-by-step guide covering data export via Supabase client (.select with .range pagination), data preparation (tsvector/embedding column removal, PostGIS geo conversion), and import into Meilisearch. Includes comparison tables mapping Supabase client methods, Supabase Vector (pgvector), and underlying PostgreSQL concepts to Meilisearch equivalents. Query comparison shows Supabase JS client vs Meilisearch REST API for full-text, filtered, sorted, vector, faceted, and geo search. Covers four sync strategies: Database Webhooks, Edge Functions, Realtime subscriptions, and periodic batch sync. Promotes auto-embedder as replacement for the entire Supabase Vector pipeline (Edge Functions, embedding columns, RPC functions, pgvector indexes). Entire-Checkpoint: 9c68757644a6
Entire-Checkpoint: 9c68757644a6
Explains how Meilisearch's multi-criteria bucket sort ranking system works and why it produces better results than BM25 for application search. Covers the seven default ranking rules, the sequential evaluation pipeline, and concrete comparisons for typo tolerance, word proximity, field importance, prefix search, and debuggability. Includes trade-offs section and hybrid search integration. Entire-Checkpoint: 9c68757644a6
PostgreSQL full-text search uses ts_rank (term frequency) and ts_rank_cd (cover density), not BM25. Separate the two models in the explanation and update the summary table to reflect the differences (proximity handling, prefix syntax, semantic search approaches). Entire-Checkpoint: 9c68757644a6
- Reorder nav: Self-hosting, Comparisons, Migration, Demos, Under the Hood, Other Resources - Rename "Project Info" to "Other Resources", move SDKs + FAQ there - Move Language page into Under the Hood - Fix factual errors in comparisons: Algolia federated search, index size, filtering; Typesense analytics, boot time, 1-click deploy, contributors, ranking score details; OpenSearch governance; PostgreSQL CJK support; GPL-3 characterization - Fix Algolia migration: Python SDK version 3.x→4.x, settings syntax errors Entire-Checkpoint: 9c68757644a6
e8a2993 to
19fde80
Compare
- Rewrite Where2Watch, E-commerce, SaaS, Image Search, Music, Geosearch pages to highlight their actual key features (hybrid search, multi-tenancy, multimodal, etc.) - Add Personalized Search and Search Playground as new demo pages - Add screenshots for E-commerce, Image Search, Music, Geosearch, Personalized, Playground - Trim less important demos (MoMA, Nobel, Tenant Tokens, Typo, Voice, RubyGems) to concise format - Reorganize overview into Featured and More demos sections Entire-Checkpoint: 9c68757644a6
- Move cloud_quick_start to getting_started/first_project in Getting Started tab - Move documents, indexes, primary_key to resources/internals (Under the hood) - Move search_preview to resources/self_hosting - Update all internal links across 36 files - Add redirects for all 5 moved pages Entire-Checkpoint: 9c68757644a6
- Move basic_security, resetting_master_key, protected_unprotected to resources/self_hosting/security/ - Remove differences_master_api_keys (duplicate of master_api_keys) - Update all internal links across 31 files - Add redirects for all 4 moved/removed pages - Fix redirect chain for /reference/features/authentication Entire-Checkpoint: 9c68757644a6
…ront-end page - Move guides/running_production and guides/docker into resources/self_hosting - Remove guides/front_end/front_end_integration (duplicated in getting started) - Add redirects for all three moved/removed pages Entire-Checkpoint: 9c68757644a6
Reorganize 23 self-hosting pages into logical groups following overview → getting started → deep dive → how-to → reference pattern: - Add overview pages for self-hosting, deployment, security, configuration, and data backup - Split 835-line configuration.mdx into overview (concepts) and reference (options) - Group installation pages under getting_started/ (quick_start, install_locally, docker, search_preview) - Merge supported_os content into install_locally page - Evolve snapshots_vs_dumps into enriched data_backup/overview - Create Advanced group for performance, webhooks, and GPU guides - Reorder security pages: concepts before tutorials - Add deployment overview with production checklist - Update 55+ internal links across 28 files - Add 8 redirects for backward compatibility Entire-Checkpoint: 9c68757644a6
Lead with Meilisearch strengths, add sharding and conversational search differentiators, fix embedding description to reflect built-in local generation via Candle plus any HTTP API provider. Entire-Checkpoint: 9c68757644a6
Entire-Checkpoint: 9c68757644a6
Reframe the page around the DiskANN concept as the broader approach, with Hannoy as Meilisearch's implementation. Adds explanation of disk-backed ANN principles and why they matter vs in-memory solutions. Entire-Checkpoint: 9c68757644a6
Document the 5-tab structure (Getting Started, Learn, References, Resources, Changelog) in CLAUDE.md. Create reusable skills: move-page, check-links, new-capability, new-comparison, update-api-ref, update-changelog. Entire-Checkpoint: 9c68757644a6
Replace outdated Postman collection guide with OpenAPI import workflow, add new annotated screenshots, and fix 7 broken /learn/ links across language, ranking, qdrant migration, and personalized search pages. Entire-Checkpoint: 9c68757644a6
Add check-missing-redirects script that uses Fathom Analytics traffic data and the production sitemap to find URLs with traffic but no page or redirect, and redirects with zero traffic. Remove 206 unused redirects, add 49 missing ones. Net: 305 -> 148 redirects. Entire-Checkpoint: 9c68757644a6
|
Let's go! |
Summary
Resources tab restructure
self_hosting/withdeployment/,security/,performance/subdirectoriesMigration guides (new)
Added comprehensive migration guides with JavaScript, Python, and Ruby code examples for:
Content quality improvements
Postman integration revamp
meilisearch-postmancollectionRedirect audit and cleanup
scripts/check-missing-redirects.mjsthat uses Fathom Analytics traffic data + production sitemap to audit redirects/check-redirectsslash command to re-run this auditBroken link fixes
/learn/internal links across language, ranking, qdrant migration, and personalized search pagesDeveloper tooling
Test plan
mintlify broken-linksafter deploy to confirm no regressions