diff --git a/docs/features/search/concepts.md b/docs/features/search/concepts.md index bd115fec4a..052191bc13 100644 --- a/docs/features/search/concepts.md +++ b/docs/features/search/concepts.md @@ -11,16 +11,14 @@ Backstage ecosystem. To get started, you should get familiar with these core concepts: -TODO: Link these like a real TOC - -- Search Engines -- Query Translators -- Documents and Indices -- Collators -- Decorators -- The Scheduler -- The Search Page -- Search Context and Components +- [Search Engines](#search-engines) +- [Query Translators](#query-translators) +- [Documents and Indices](#documents-and-indices) +- [Collators](#collators) +- [Decorators](#decorators) +- [The Scheduler](#the-scheduler) +- [The Search Page](#the-search-page) +- [Search Context and Components](#search-context-and-components) ### Search Engines @@ -91,7 +89,8 @@ your heart's content, the Search Plugin takes care of state management and other search logic for you, but most of the layout of a search page lives in a search page component defined in your Backstage App. -For an example of a simple search page, check [getting started](TODO) +For an example of a simple search page, check +[getting started](./getting-started.md#adding-search-to-the-frontend) ### Search Context and Components @@ -106,7 +105,8 @@ search results can be displayed using the `` component. The `` and `` components are special, in that they themselves are extensible. For an example of how to extend these -components, [check this out](TODO). +components, check +[getting started](./getting-started.md#adding-search-to-the-frontend). If you need even more customization, you can use the search context like any other React context to create custom search components of your own. diff --git a/docs/features/search/getting-started.md b/docs/features/search/getting-started.md index 6218afbcb0..42b0cdb2c5 100644 --- a/docs/features/search/getting-started.md +++ b/docs/features/search/getting-started.md @@ -204,7 +204,7 @@ get passed to the backend. ``` If you have advanced filter needs, you can specify your own filter component -like this (although contributions are welcome): +like this (although new core filter contributions are welcome): ```tsx import { useSearch, SearchFilter } from '@backstage/plugin-search'; @@ -251,9 +251,10 @@ an example: ### Backend Backstage Search isn't a search engine itself, rather, it provides an interface -between your Backstage instance and a Search Engine of your choice. Currently, -we only support one, in-memory search Engine called Lunr. It can be instantiated -like this: +between your Backstage instance and a +[Search Engine](./concepts.md#search-engines) of your choice. Currently, we only +support one, in-memory search Engine called Lunr. It can be instantiated like +this: ```typescript const searchEngine = new LunrSearchEngine({ logger }); @@ -261,9 +262,9 @@ const indexBuilder = new IndexBuilder({ logger, searchEngine }); ``` Backstage Search can be used to power search of anything! Plugins like the -Catalog offer default "collators" which are responsible for providing documents -to be indexed. You can register any number of collators with the `IndexBuilder` -like this: +Catalog offer default [collators](./concepts.md#collators) which are responsible +for providing documents [to be indexed](./concepts.md#documents-and-indices). +You can register any number of collators with the `IndexBuilder` like this: ```typescript const indexBuilder = new IndexBuilder({ logger, searchEngine }); @@ -281,10 +282,11 @@ indexBuilder.addCollator({ }); ``` -Backstage Search builds and maintains its index on a schedule. You can change -how often the indexes are rebuilt for a given type of document. You may want to -do this if your documents are updated more or less frequently. You can do so by -modifying its `defaultRefreshIntervalSeconds` value, like this: +Backstage Search builds and maintains its index +[on a schedule](./concepts.md#the-scheduler). You can change how often the +indexes are rebuilt for a given type of document. You may want to do this if +your documents are updated more or less frequently. You can do so by modifying +its `defaultRefreshIntervalSeconds` value, like this: ```typescript {3} indexBuilder.addCollator({ diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 6c42614a61..22a47da6d1 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -75,6 +75,8 @@ "label": "Backstage Search", "ids": [ "features/search/search-overview", + "features/search/getting-started", + "features/search/concepts", "features/search/architecture" ] }, diff --git a/mkdocs.yml b/mkdocs.yml index 574b04f8f7..99c7f332e2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -58,6 +58,8 @@ nav: - Backstage Search: - Overview: 'features/search/README.md' + - Getting Started: 'features/search/getting-started.md' + - Concepts: 'features/search/concepts.md' - Search Architecture: 'features/search/architecture.md' - TechDocs: - Overview: 'features/techdocs/README.md'