Hybris:在全索引时启用 SOLR 搜索

Hybris: Enabling SOLR Search While FULL Indexing

我们的目录中有很多产品。当我们对 solr 进行完整索引时,我们的搜索会下降。知道如何实现这一点,以便在执行 solr 完整索引时不会中断站点搜索。

我建议您在离线时间实现完整索引。 我们正在为我们的应用程序做同样的事情,第一次或离线全索引。

在完整索引未完成之前无法进行搜索。

您可以维护索引是否完成并可供搜索的状态。

我发现solr索引有两种索引器模式:Direct和Two-Phase。在 Hybris 中使用两阶段 solr 索引选项,我能够在不中断搜索的情况下进行 solr 完整索引。

根据 Hybris Wiki,有两种索引器模式:

DIRECT: 在全索引操作的情况下,当前索引被删除并被新索引替换。一段时间内索引未完全供用户查询。

TWO_PHASE: 当前索引保持活动状态,直到在新的 Solr 核心中构建新索引。之后,新索引取代旧索引,用户无需停机即可查询。外部前端应用程序不需要知道当前哪个 Solr 索引器内核处于活动状态。

使用两阶段提交仅在使用单个 solr 服务器或没有 "use master exclusively for indexing" 设置的集群时有用。使用两阶段提交最适用于小型单节点开发沙箱和 CI/UAT 测试安装。

Hybris Commerce 管理一个 solr 服务器集群。对于生产和负载测试部署,使用 至少 两个,其中一个配置为主服务器,每个额外的 solr 服务器配置为从属服务器。将主服务器(HMC/Management Backoffice 复选框 "use master exclusively for indexing")配置为 运行 仅作为索引器,防止 Hybris Commerce 在主服务器上进行搜索。然后 运行 一个完整的索引以确保所有的奴隶都是最新的。

master/slave solr 集群设置 Hybris commerce 会将索引作业发送给主服务器(第 1 阶段),当它们完成时,它将连接到每个从服务器并强制其下载并应用完成的索引(阶段 2) 来自主站的两阶段操作。此配置几乎完全将索引负载与搜索负载隔离开来。除了连续搜索可用性之外,这还提供了垂直扩展主服务器以处理索引工作负载而从服务器可以水平扩展以处理搜索负载的能力。