diff --git a/docs/assets/search/architecture.drawio.svg b/docs/assets/search/architecture.drawio.svg index d7a8177d1c..709a008b43 100644 --- a/docs/assets/search/architecture.drawio.svg +++ b/docs/assets/search/architecture.drawio.svg @@ -1,20 +1,19 @@ - + - - - - - - - - + + + + + + + - -
-
-
+ +
+
+

@@ -22,18 +21,17 @@
- - + - +
-
-
+
+

@@ -42,20 +40,38 @@
- - - + + + + + +
+
+
+
+ Search +
+ Engine +
+
+
+
+ + Search... + +
+
- +
-
-
+
+
App Package: <Route path="/search" element={<... />} />
@@ -66,51 +82,51 @@ - + - -
-
-
- @backstage/ -
- plugin-search-backend + +
+
+
+ + @backstage/ +
+ plugin-search-backend +
- + @backstage/... - + - -
-
-
- Other Plugins -
- (TechDocs, Catalog, Etc) + +
+
+
+ @backstage/plugin-xyz
- - Other Plugins... + + @backstage/plugin-xyz - + - -
-
-
+ +
+
+

@@ -120,94 +136,90 @@
- + - + - -
-
-
+ +
+
+
@backstage/plugin-search
- + @backstage/plugin-search - - - + - -
-
-
- Other Backend Plugin (TechDocs, Catalog, Etc) + +
+
+
+ @backstage/plugin-xyz-backend
- - Other Backend Plugin (TechDocs, Catalog, Etc) + + @backstage/plugin-xyz-backend - + - -
-
-
- Search Engine (Elastic, Solr, SaaS, etc.) + +
+
+
+ e.g. ElasticSearch, Postgres, Lunr, etc.
- - Search Engine (Elastic, Solr, SaaS, et... + + e.g. ElasticSearch, Postgres, Lunr,... - + - -
-
-
- Search Engine Integration Layer + +
+
+
+ @backstage/plugin-search-backend-module-xyz
- - Search Engine Integration Layer + + @backstage/plugin-search-backend-module-xyz - - - - - + + + - +
-
-
+
+
1 2 3 @@ -223,10 +235,10 @@ - +
-
-
+
+
X number of search results @@ -239,17 +251,17 @@ - - - - - + + + + + - -
-
-
+ +
+
+
Components @@ -257,43 +269,18 @@
- + Components - - - + - -
-
-
- Pass Search -
- Term and Filters -
- and then -
- Return Results -
-
-
-
- - Pass Search... - -
-
- - - - -
-
-
+ +
+
+
Search API @@ -301,20 +288,20 @@
- + Search API - - + + - -
-
-
+ +
+
+
Components @@ -322,232 +309,574 @@
- + Components - - + + - -
-
-
+ +
+
+
+ + IndexBuilder + +
+
+
+
+ + IndexBui... + + + + + + + + + + +
+
+
+ + Query Service +
+
+
+
+
+
+ + Query Se... + +
+
+ + + + +
+
+
+ + + Indexer + +
+
+ Manages Indices +
+ and Writes Documents to a Search Engine +
+
+
+
+
+
+ + Indexer... + +
+
+ + + + + + + +
+
+
+ + + Query Handler + +
+
+ Compiles and Executes Query Against a Search Engine +
+
+
+
+
+ + Query Handler... + +
+
+ + + + +
+
+
+ @backstage/ +
+ plugin-search-backend-node +
+
+
+
+
+ + @backstage/... + +
+
+ + + + +
+
+
+ Backend Package: src/plugins/search.ts +
+
+
+
+ + Backend Package: src/plugins/search.ts + +
+
+ + + + +
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + + + +
+
+
+ + + Authorization +
+ (Optional) +
+
+
+
+
+
+
+ + Authorization... + +
+
+ + + + + + + +
+
+
+ IndexBuilder +
+
+
+
+ + IndexBuilder + +
+
+ + + + +
+
+
+ + SearchEngine + +
+
+
+
+ + SearchEngine + +
+
+ + + + +
+
+
+ + Collator(s) + +
+
+
+
+ + Collator(s) + +
+
+ + + + +
+
+
+ + Decorator(s) + +
+
+
+
+ + Decorator(s) + +
+
+ + + + +
+
+
+ + Start Schedule + +
+
+
+
+ + Start Schedule + +
+
+ + + + +
+
+
+ + Create Router + +
+
+
+
+ + Create Router + +
+
+ + + + +
+
+
+ Scheduler
- + Scheduler
- + + + + + - -
-
-
- - Gather Documents From Plugins - + +
+
+
+
+ + Database for + +
+ +
+ + Task Coordination + +
+
+ + Among Nodes + +
+
- - Gather D... + + Database fo... - - - - + + - -
-
-
- - Register Document / Metadata Collation Handler(s) - + +
+
+
+
+ + Install and configure the +
+ search engine, collators, +
+ and decorators that are +
+ appropriate for your +
+ organization! +
+
- - Register Docu... + + Install and con... - + + - -
-
-
- - API Endpoint + +
+
+
+ + Custom Query
+ Translator (Optional)
- - API Endp... + + Custom Quer... - + - -
-
-
+ +
+
+
+ + SearchEngine Implementation + +
+
+
+
+ + SearchEngine Implementati... + + + + + + + +
+
+
+ + XyzCollatorFactory + +
+
+
+
+ + XyzCollatorFactory + +
+
+ + + + + + + +
+
+
+ + XyzDecoratorFactory + +
+
+
+
+ + XyzDecoratorFacto... + +
+
+ + + + + + + + + + + + + + +
+
+
+
+ + Individual backend plugins +
+ define how documents are +
+ retrieved from the plugin's +
+ data store and mapped to +
+ an IndexableDocument. +
+
+
+
+
+
+ + Individual backe... + +
+
+ + + + + + + + + + + + + + +
+
+
+
+ + Individual frontend plugins may +
+ define custom components, +
+ e.g. custom search result items. +
+
+
+
+
+
+ + Individual frontend... + +
+
+ + + + +
+
+
- Query Processing + Search Context
- - Query Processing - -
-
- - - - -
-
-
- - Index Processing - -
-
-
-
- - Index Processi... - -
-
- - - - -
-
-
- - Index Processing - -
-
-
-
- - Index Processi... - -
-
- - - - -
-
-
- - Query Processing - -
-
-
-
- - Query Processing - -
-
- - - - -
-
-
- - - Manage Index - -
- Create, Remove, Replace Documents and Indices -
-
-
-
-
- - Manage Index... - -
-
- - - - - - - -
-
-
- - Compile and Execute Query from Term and Filters - -
-
-
-
- - Compile and Execute... - -
-
- - - - -
-
-
- @backstage/ -
- plugin-search-backend-node -
-
-
-
- - @backstage/... + + Search Cont...
+ + + + + + + + +