Skip to main content

搜索概念

Backstage搜索可让您在Backstage生态系统中找到所需的正确信息。

要开始学习,您应该熟悉这些核心概念:

搜索引擎

Backstage搜索本身并不是一个搜索引擎,而是在Backstage实例和您选择的搜索引擎之间提供了一个接口。 更具体地说,一个SearchEngine是一个接口,其具体实现有助于与不同的搜索引擎(如 Elasticsearch、Lunr、Solr 等)进行通信。

开箱即用的 Backstage Search 预装了基于 Lunr 的内存搜索引擎。

查询翻译器

由于您可以使用自己的搜索引擎,而且搜索引擎本身也有非常独特和强大的查询语言,因此在将抽象的搜索查询(包含搜索术语、过滤器和文档类型)转换为搜索引擎专用的具体搜索查询之间,需要有一个转换层。

搜索引擎预装了简单的翻译器,可对搜索词和过滤器进行基本转换,但您可能需要提供自己的翻译器,以帮助根据贵组织的情况调整搜索结果。

文件和索引

"文档 "是一个抽象概念,代表可以通过搜索找到的东西。 文档可以代表一个软件实体、一个 TechDocs 页面等。文档由元数据字段组成,至少包括标题、文本和位置(如 URL)。

索引是特定类型的此类文件的集合。

Collators

你需要能够搜索某些东西!整理器是定义可搜索内容的方法。 具体来说,它们是符合最低字段集(包括文档标题、位置和文本)的可读文档对象流,但可以包含整理器本身定义的任何其他字段。 一个整理器负责定义和收集某一类型的文档。

有些插件(如目录后端)提供所谓的 "默认 "整理器工厂,您可以开箱即用,快速开始在整个Backstage进行搜索。

装修公司

有时,您想在搜索索引中为文档集添加整理者可能不知道的额外信息。 例如,软件目录知道软件实体,但可能不知道它们的用途或质量。

装饰器是索引过程中位于整理器(读取流)和索引器(写入流)之间的转换流。 它可用于在整理和索引文档时向文档添加额外字段。 这些额外的元数据可用于偏向搜索结果或改善Backstage实例的搜索体验。

除了添加额外的元数据外,装饰器(就像任何转换流一样)还可用于在索引时移除元数据、过滤掉甚至添加额外的文档。

调度器

建立和维护搜索索引的方式有很多种,但 Backstage Search 选择按计划完全重建索引。 可以根据源信息的更新频率,配置不同的整理器以不同的间隔刷新。 当搜索索引分布在多个后端节点时,通常由分布式TaskRunner.

搜索页面

搜索页面是非常定制化的东西。 并非每个Backstage实例都需要相同的界面!为了让您尽情定制搜索体验,搜索插件会为您处理状态管理和其他搜索逻辑,但搜索页面的大部分布局都在Backstage应用程序中定义的搜索页面组件中。

有关简单搜索页面的示例,请查看入门

搜索内容和组件

搜索体验与页面一样,是由任意数量的搜索组件组成的,这些组件都是通过搜索上下文连接起来的。

每个搜索体验的上下文都包含搜索词、过滤器、类型、结果和用于处理分页的页面光标等细节。 不同的组件以不同的方式使用这些上下文。 例如,"...... "和"......<SearchBar />可以设置搜索词、<SearchFilter />组件可以设置筛选器,搜索结果可以使用<SearchResult />组件。

<SearchResult /><SearchFilter />组件很特别,因为它们本身是可扩展的。 有关如何扩展这些组件的示例,请查看入门.

如果您需要更多自定义功能,可以像使用其他 React 上下文一样使用搜索上下文来创建自己的自定义搜索组件。