搜索

搜索扩展组件为应用程序提供全文搜索的功能。 支持配置实体索引和已上传文件的索引,并提供对索引数据进行搜索的 API 和 UI 组件。搜索结果会根据当前用户的 数据访问 权限进行过滤。

该扩展组件使用 Elasticsearch(ES)OpenSearch(Jmix 2.3+) 作为搜索引擎。使用时请选择其中之一作为搜索引擎。

关于其内部原理和索引构建的更多信息请参阅 ElasticsearchOpenSearch 文档。

安装

按照 扩展组件 章节的说明通过 Jmix 市场进行自动安装。

扩展组件默认安装后,将支持 OpenSearch 作为搜索引擎。

如果项目是从之前安装了扩展组件的 Jmix 版本升级而来,则会保留 Elasticsearch 作为搜索引擎。

手动安装,在 build.gradle 添加下列依赖:

implementation 'io.jmix.search:jmix-search-flowui-starter'
implementation 'io.jmix.search:jmix-search-starter'
implementation 'io.jmix.search:jmix-search-opensearch-starter'

如果需要切换搜索引擎,可以替换 jmix-search-opensearch-starterjmix-search-elasticsearch-starter

implementation 'io.jmix.search:jmix-search-elasticsearch-starter'

连接搜索引擎服务

连接 Elasticsearch/OpenSearch 服务需要在 application.properties 文件中配置:

  • jmix.search.server.url - 服务的完整 URL 地址。

  • jmix.search.server.login - 用户名。

  • jmix.search.server.password - 用户密码。

版本兼容性

Elasticsearch/OpenSearch 的 Java API 客户端是向前兼容的。

扩展组件使用 Elasticsearch Java API 客户端 v8.10.4,支持 ES 8.10+(但是应该也支持更老的版本,除非 Elastic 不支持老版本的服务了 - 7.17.x)。

对于 OpenSearch,扩展组件使用 Java API 客户端 v2.10.3。

注意,搜索扩展组件目前不支持 AWS 提供的 ES 服务。