Skip to main content

搜索架构

以下是搜索架构,我们的目标是支持各种搜索引擎,同时为插件开发人员提供简单的开发体验,并为 Backstage 终端用户提供良好的开箱即用体验。

Search Architecture

在基本层面上,我们希望支持以下内容:

  • 我们的目标是在整个 backstage 生态系统中实现搜索功能,包括但不限于软件目录中的实体。 可搜索的内容不需要与软件目录直接相关,但按照惯例,我们可能会鼓励使用众所周知的字段名称或属性来建立松散的关系。 我们的目标是通过在核心搜索插件和搜索引擎特定逻辑之间提供一个集成和转换层来实现使用任何搜索引擎部署 backstage 的功能,该层可针对不同的搜索引擎进行扩展。 我们还可能引入用自定义端点替换后端 API 端点的功能,以实现更简单的自定义。

我们希望通过该架构支持的更多高级用例包括

  • 任何插件都可以在搜索中显示新内容(如实体元数据、TechDocs 文档) * 任何插件都可以在搜索中为现有内容添加相关元数据(如 TechDocs 页面的位置(路径)) * 可以完善搜索查询(如排名、评分等) * 可以自定义搜索用户界面 * 可以为任何Backstage插件或部署添加搜索功能

架构非目标:

  • 目前,我们不打算直接支持事件驱动或增量索引管理。 相反,我们将专注于计划的批量索引管理。

技术栈

| Stack | Location | | ------------------------- | ----------------------------------------------------- | | Frontend Plugin | @backstage/plugin-search | | Frontend Plugin Library | @backstage/plugin-search-react | | Isomorphic Plugin Library | @backstage/plugin-search-common | | Backend Plugin | @backstage/plugin-search-backend | | Backend Plugin Library | @backstage/plugin-search-backend-node | | Backend Plugin Module | @backstage/plugin-search-backend-module-elasticsearch | | Backend Plugin Module | @backstage/plugin-search-backend-module-pg |