* feat(askai): add compatibility with algolia mcp search tool [DASH-2294] (#2862) ## Summary Fixes DASH-2294 Add compatibility with the Algolia MCP search tool (`algolia_search_index_${string}`) in AskAI. ## Changes - Add `AlgoliaMCPSearchTool` type to handle the Algolia MCP server search tool - Refactor how number of hits are retrieved in `ToolCall` into a `getNumberOfHits` helper ## Test plan - Added unit tests for modified code ✅ * chore: Update to use tsdown for build system (#2824) * chore: Update to use tsdown for build system * fix: docsearch-react build * fix: lint * fix: glob resolved to incorrect version * chore: migrate to from yarn, lerna and shipjs to bun & changesets (#2827) * chore: add tool-versions file for node and bun versions (#2866) * chore: watch in parallel (#2867) * feat: agent studio feedback integration (#2868) * feat(askai): Split Ask AI modal into own component (#2884) * feat(askai): Split Ask AI modal into own component * refactor(react): share modal utilities * refactor(react): share search box form * refactor(react): extract start screen sections * refactor(react): extract shared modal hooks * fix: lint adapter * refactor(react): reorganize modal files * fix: type error in examples * fix: remove ai modal from adapter for now, fix import paths of react package * feat(askai): Agent Studio core tools (#2886) * feat(askai): Implement dynamic tool calls * move ToolCall to components dir * Converge Agent Studio search tools to same definition, fix client side tools breaking UI state * add examples for custom tools * fix: lint & types * feat(askai): add Agent Studio memory support (#2888) * feat(askai): remove Ask AI transport layer (#2889) * feat(askai): add Agent Studio memory support * refactor(askai): remove Ask AI transport abstraction * feat(askai): Feedback notes and tags (#2890) * feat(askai): add Agent Studio memory support * refactor(askai): remove Ask AI transport abstraction * feat(askai): Feedback notes and tags * fix: bump css bundle size limit * move feedback actions to components * chore: fix deploys for v5 branch * feat(askai): Aggregate MCP search tool calls (#2891) * feat(askai): add Agent Studio memory support * refactor(askai): remove Ask AI transport abstraction * feat(askai): Feedback notes and tags * fix: bump css bundle size limit * move feedback actions to components * feat(askai): Aggregate MCP search tool calls * feat(askai): Allow dynamic indices for Agent Studio (#2893) * feat(v5): UI updates (#2896) * feat(v5): UI updates * fix: css file size * fix: e2e tests * fix: e2e tests * fix: e2e tests * chore: add theme toggle to react demo example * Update sources panel display, update dark theme * fix: lint * fix(askai): address ui review feedback * fix: pin icon positioning * fix(askai): improve a11y and dark-mode shimmer for thinking and error states - add role=alert/status and aria-hidden on error/thinking UI - support dark-mode shimmer gradients via CSS variables - respect prefers-reduced-motion for shimmer - handle null date in useRelativeFormattedDate with fallback translation * feat(v5): Add hit breadcrumbs (#2897) * feat(v5): UI updates * fix: css file size * fix: e2e tests * fix: e2e tests * fix: e2e tests * chore: add theme toggle to react demo example * Update sources panel display, update dark theme * fix: lint * fix(askai): address ui review feedback * fix: pin icon positioning * fix(askai): improve a11y and dark-mode shimmer for thinking and error states - add role=alert/status and aria-hidden on error/thinking UI - support dark-mode shimmer gradients via CSS variables - respect prefers-reduced-motion for shimmer - handle null date in useRelativeFormattedDate with fallback translation * feat(v5): Add hit breadcrumbs * fix: bump css bundle size limit * Fix after conflicts * chore: move CSS building to lightning css (#2898) * feat: Facet filters for search (#2899) * feat(v5): Initial facet filters work * Perf updates, dark theme, facet chips, a11y improvements * fix: bump css bundle size limit * Dedupe facet filters, refetch facets on searchParameters changes * Add chevron flourish * fix(askai): Fix new conversation causing thread depth errors (#2900) * feat(v5): Add hit result badge (#2901) * feat(v5): Add hit result badge * Add background to hit result badge * feat(v5): Add follow up prompt suggestions (#2902) * feat(v5): Add follow up prompt suggestions * fix: bump css bundle size limit * docs(agents): document Cursor Cloud dev environment setup for v5 (Bun) (#2903) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * feat(mcp): setup mcp plugins (#2895) * feat(v5): Add prompt suggestions to keyword search (#2912) * feat(v5): Add prompt suggestions to keyword search * cleanup: Move consistent object to reusable constant * chore(v5): Split Ask AI related CSS into own bundle (#2913) * chore(v5): Split Ask AI related CSS into own bundle * move style.css to include modal and askai * fix: Ensure stage level and watch level scripts use bun runtime (#2915) * fix: Ensure stage level and watch level scripts use bun runtime * chore: move to node@24 update imports * fix: lint * feat(js): Document JS based hybrid mode, fix JS packages (#2916) * feat(js): Document JS based hybrid mode, fix JS packages * update: add model onOpen to docs * feat(cli): add @docsearch/cli for MCP setup and search (#2911) * chore(tsdown): Bump to latest tsdown version (#2918) * chore(tsdown): Bump to latest tsdown version * fix: bump nvmrc node version * fix: cli tsconfig * fix: website build * fix: example build * fix: circleci install bun * fix: lint * fix: circleci install bun * fix: circleci install bun * fix: circleci install bun * refactor(docusaurus-adapter): rework theme config for v5 and modularize SearchPage (#2904) Co-authored-by: Paul Jankowski <8BitTitan@gmail.com> * feat(askai): Move askai related props under root askai (#2919) * feat(askai): Move askai related props under root askai * fix: playwright test case * fix(docusaurus): validate Ask AI options * feat(js): Split JS bundles for search only (#2920) * chore: Move to oxlint and oxfmt (#2923) * chore: Get NPM OIDC token before publishing (#2924) * chore: Enter v5 beta (#2925) * chore: Enter pre release mode for v5 * chore: update release summary * chore: version bump * fix: Remove NPM_ID_TOKEN for release * fix: Try setting blank NPM_TOKEN * fix: Try blank NPM_AUTH_TOKEN * chore: bump node and npm for release job * docs(mcp): add service disclaimer (#2921) * fix: Agent Studio MCP search tool (#2927) * fix: Agent Studio MCP search tool * Add changeset * chore: Update stylelint (#2926) * chore: stylelint update * bun.lock * Add changeset * fix(website): use bare @import for tailwindcss (#2933) Tailwind's build-time `@import` cannot be written with `url()` notation, so `@import url('tailwindcss')` was passed through as a plain CSS import instead of being processed by Tailwind. Also syncs bun.lock with the 5.0.0-beta.0 versions already committed to package.json. * chore: version v5.0.0-beta.1 (#2932) * feat(react): remove deprecated index props (#2936) * feat(mcp): add ChatGPT and Codex DocSearch plugin package (#2938) * fix: cleanup claude * feat: website redesign (#2930) Co-authored-by: Cursor <cursoragent@cursor.com> * fix: lint * fix: crash on the demo (#2940) * feat(docs): Document v5 beta (#2935) * chore(docs): v5 documentation * Writing style clean up * fix: website after conflicts * fix: reported issues on mobile (#2944) * chore: Introduce a11y smoke tests (#2943) * chore: Add Lorris as codeowner (#2946) * fix(askai): Ask AI fixes for v5 (#2945) * fix: General v5 fixes (#2947) - Fix `ref` console error for a `FacetMenu` - Whitespace only search/conversation input does not trigger requests - Fix flash of no results page on search * feat: v5 general improvements (#2948) * feat(v5): General fixes and improvements * add changeset * fix: bundlesize * feat(v5): UI and DX improvements (#2949) * feat: Rename assistantId to agentId * feat: Allow reading default facet values from index searchParameters * feat: Remove indexName prop from Sidepanel, cleanup documentation pages * feat: Move appId and apiKey up into @docsearch/core * feat: Add back nested grouping of search results * add changeset * revert changes to example demo * fix: e2e tests * chore: push git tags on version release (#2951) * chore: release v5.0.0-beta.2 (#2950) * chore: Fix pushing git tags (#2953) * fix(askai): sanitize markdown HTML in v5 (#2954) Backport of #2929.\n\nOriginal commit:681cbfec03Co-authored-by: Vasco Bettencourt <32492444+vascobettencourt@users.noreply.github.com> * fix(v5): stop truncating mobile snippets (#2958) * fix(v5): stop truncating mobile snippets Backport of #2907.\n\nOriginal commit:9ad6d169fe* fix(v5): allow mobile hit text to wrap Completes the v5 adaptation of #2907 by overriding later v5 child-level truncation rules.\n\nOriginal commit:9ad6d169fe* chore(v5): account for mobile wrapping CSS Updates the CSS size budget for the v5 adaptation of #2907.\n\nOriginal commit:9ad6d169fe--------- Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> * feat(v5): Add new footerAction prop (#2952) * feat(v5): Add new footerAction prop * Resolve PR comments * fix(v5): recognize conversation depth errors (#2957) Backport of #2881.\n\nOriginal commit:f68e52251cCo-authored-by: Felipe Bermudez <felipeberm@gmail.com> * fix(v5): expose Sidepanel search parameter types (#2956) * fix(v5): expose Sidepanel search parameter types Backport of #2906.\n\nOriginal commit:4710d0ca77* Delete sidepanel.test.ts Had a pointless test case in it. --------- Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> * fix(v5): ignore slash shortcut on focused buttons (#2955) Backport of #2871.\n\nOriginal commit:0e41a78c44Co-authored-by: Sigmabro <122412346+Sigmabrogz@users.noreply.github.com> * fix(agentStudio): agents dynamic mode enabled (#2959) * fix(agentStudio): agents dynamic mode enabled * fix(askai): use string[] for dynamic agentStudio indices * feat(docs): add Ask AI to Agent Studio migration guide (#2931) * feat(docs): add Ask AI to Agent Studio migration guide * feat(docs): agentStudio migrating from askAI * feat(docs): renaming agentId * feat(agentStudio): dynamic mode indices updated * fix: Docusaurus adapter styling, DocSearch website fixes (#2960) * chore: release v5.0.0-beta.3 (#2961) * feat(website): Launch updates (#2964) * fix(website): Fix font loading (#2966) * feat(v5): Back port cost control errors (#2965) * chore: release v5.0.0-beta.4 (#2967) --------- Co-authored-by: Vincent Lemeunier <vincentlemeunier+git@gmail.com> Co-authored-by: Dylan Tientcheu <dylan.tientcheu@algolia.com> Co-authored-by: Lorris Saint-Genez <lorrissaintgenez@gmail.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Dylan Tientcheu <dylantientcheu@gmail.com> Co-authored-by: Vasco Bettencourt <32492444+vascobettencourt@users.noreply.github.com> Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Co-authored-by: Felipe Bermudez <felipeberm@gmail.com> Co-authored-by: Sigmabro <122412346+Sigmabrogz@users.noreply.github.com>
120 lines
5.8 KiB
Text
120 lines
5.8 KiB
Text
---
|
|
title: DocSearch x Algolia Crawler
|
|
---
|
|
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
|
|
If you're not finding the answer to your question on this website, this page will help you. If you're still unsure, don't hesitate to connect with us on [Discord][1] or let our [support][3] team know.
|
|
|
|
You can also read our [Crawler FAQ](https://www.algolia.com/doc/tools/crawler/troubleshooting/crawl-status/), to understand how it behaves:
|
|
|
|
- [One of my pages wasn't crawled](https://www.algolia.com/doc/tools/crawler/troubleshooting/extraction-issues/#a-page-wasnt-crawled)
|
|
- [Why are my pages skipped?](https://www.algolia.com/doc/tools/crawler/troubleshooting/fetching-issues/)
|
|
|
|
For questions related to the DocSearch program, please see our [DocSearch program FAQ](/docs/docsearch-program).
|
|
|
|
## How often will you crawl my website?
|
|
|
|
Crawls are scheduled at a random time once a week. You can [configure this schedule from the config file](https://www.algolia.com/doc/tools/crawler/apis/configuration/schedule/) or trigger one manually from [the Crawler interface][2].
|
|
|
|
## Why do I have duplicate content in my results?
|
|
|
|
This can happen when you have more than one URL pointing to the same content, for example with `./docs`, `./docs/` and `./docs/index.html`.
|
|
|
|
We recommend configuring canonical URLs on your website, you can read more on the ["Consolidate duplicate URLs" guide by Google](https://developers.google.com/search/docs/advanced/crawling/consolidate-duplicate-urls).
|
|
|
|
Ultimately, it is possible to set the [`exclusionPatterns`](https://www.algolia.com/doc/tools/crawler/apis/configuration/exclusion-patterns/) to all the patterns you want to exclude.
|
|
|
|
## Are the [`docsearch-scraper`](https://github.com/algolia/docsearch-scraper) and [`docsearch-configs`](https://github.com/algolia/docsearch-configs) repository still maintained?
|
|
|
|
We've deprecated our legacy infrastructure, but you can still use it to [run your own instance](/docs/legacy/run-your-own) and plug it to [DocSearch v3](/docs/v3/docsearch)!
|
|
|
|
## How to migrate
|
|
|
|
> Every owner should have received a migration email from Algolia with the details. If you were not part of the previous `index` owners, or the maintainer has changed, you can request access via [our support page](https://www.algolia.com/support/).
|
|
|
|
All the steps are detailed in the email you've received, but in order to use the new infrastructure you need to:
|
|
|
|
- Join the Algolia application with the invite included in the email
|
|
- Update your frontend integration with the credentials received in the email.
|
|
|
|
<Tabs
|
|
groupId="language"
|
|
defaultValue="js"
|
|
values={[
|
|
{ label: 'JavaScript', value: 'js', },
|
|
{ label: 'React', value: 'react', }
|
|
]
|
|
}>
|
|
<TabItem value="js">
|
|
|
|
```js app.js
|
|
docsearch({
|
|
container: '#docsearch',
|
|
appId: 'YOUR_NEW_ALGOLIA_APP_ID',
|
|
apiKey: 'YOUR_NEW_ALGOLIA_SEARCH_API_KEY',
|
|
indexName: 'YOUR_INDEX_NAME', // it does not change
|
|
});
|
|
```
|
|
|
|
</TabItem>
|
|
|
|
<TabItem value="react">
|
|
|
|
```jsx App.js
|
|
<DocSearch
|
|
appId="YOUR_NEW_ALGOLIA_APP_ID"
|
|
apiKey="YOUR_NEW_ALGOLIA_SEARCH_API_KEY"
|
|
indexName="YOUR_INDEX_NAME" // it does not change
|
|
/>
|
|
```
|
|
|
|
</TabItem>
|
|
|
|
</Tabs>
|
|
|
|
## What should I do with my legacy config and credentials?
|
|
|
|
You can forget about them, we will do the cleaning once all of our users have migrated to the new infrastructure!
|
|
|
|
You should use [the dedicated web interface][2] to make any changes to your index.
|
|
|
|
## Why do I see two Algolia apps in my dashboard?
|
|
|
|
We did not remove access to the legacy DocSearch application (`BH4D9OD16A`) to give you the time to get familiar with our new infrastructure. `BH4D9OD16A` will remain available until the migration has been completed for all the DocSearch users.
|
|
|
|
## Search yields no results
|
|
|
|
If your search does not yield any results, but there is no error in [your browser developer tools](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools), there might be an issue with your index.
|
|
|
|
Make sure that:
|
|
|
|
1. [Your Crawler config](/docs/record-extractor) matches your website structure
|
|
|
|
We provide [config templates](/docs/templates) for many website generators, but you can also use them as a base. To debug your selectors, we recommend using [the URL tester](/docs/manage-your-crawls/#url-tester).
|
|
|
|
2. Your index settings are up to date (you'll see a banner in [the search preview](/docs/manage-your-crawls/#search-preview) if not)
|
|
|
|
The Crawler only applies `index settings` at index creation time, to keep the Algolia dashboard as the source of truth. If you have drastically changed your config, or moved to a website generator, we recommend you to delete your index from the Algolia dashboard before starting a new crawl.
|
|
|
|
## Can I delete my crawler?
|
|
|
|
No. Well, you can but once you do things will not work correctly. We automatically create a default crawler that is associated with your DocSearch application and deleting it with the intention of creating a new one will not work as expected.
|
|
|
|
## What if I delete my DocSearch Crawler?
|
|
|
|
The fastest way will be to connect with us on our [Discord](https://alg.li/discord). Alternatively, email us at the address below and we will get to it as soon as we can.
|
|
|
|
## Can I use the Crawler on password protected sites?
|
|
|
|
The Crawler as used with DocSearch applications cannot be used for password protected sites that require a login. If you need this functionality, you need to utilize a regular Algolia plan https://www.algolia.com/pricing and add a crawler to it. Note that while it is free to add a pay-as-you-go crawler, the free tier does have limitations.
|
|
|
|
## Links related to the migration
|
|
|
|
- [Docusaurus blog post](https://docusaurus.io/blog/2021/11/21/algolia-docsearch-migration)
|
|
- [Algolia Dev chat 11-23-2021](https://www.youtube.com/watch?v=htsjpojpKtc&t=2404s)
|
|
|
|
[1]: https://alg.li/discord
|
|
[2]: https://dashboard.algolia.com/crawler
|
|
[3]: https://support.algolia.com/
|