WebSphere ">Commerce 是运行在 WebSphere Application Server 上的扩展度高、灵活性好的企业级电子商务应用。自从 Version 7 feature pack 2 以来,WebSphere Commerce 集成了 solr search 做为自己的搜索引擎,提供了更多以搜索为基础的增强功能,并且以后的 feature pack 3,4,5 版本对这个新特性进行了进一步加强。现在越来越多的客户在生产环境中启用这种新的搜索引擎功能,同时遇到各种各样的问题,本文总结了真实客户在部署 solr search 遇到的一般问题,并提供相应的解决方案,本文是一篇最佳实践类的文章,将给现在正在使用 solr search 的客户和即将使用它的客户提供帮助。
在 solr search 集群环境中,构建索引(build index)的最佳实践
当在 WebSphere Commerce 主节点运行 di-buildindex.bat/sh 命令来构建索引的时候,它将按照下列的逻辑来执行:
在 WebSphere Commerce 数据库表 SRCHCONFEXT 中获得构建索引主机(index server)的主机名和端口号,缺省的主机名是 solr web 服务器的主机名,端口号是 3737。
注意:需要说明一点 WebSphere Commerce Feature Pack 2 版本,将使用 SRCHCONF 表,WebSphere Commerce Feature Pack 3 及以后版本,将使用 SRCHCONFEXT 表。
使用构建索引主机的主机名和端口号来生成构建索引的请求 URL,并且提交给构建索引主机来执行。
图 1. 典型 solr search 集群环境
在 图 1 中,solr 应用服务器 1、2、3 构成集群环境。如果不做任何修改而使用缺省设置,构建索引主机是 solr web 服务器,这将导致一个问题,solr web 服务器将通过 plugin 把构建索引的请求转发给集群中的任何一个应用服务器,可能是 solr 应用服务器 1,也可能是 solr 应用服务器 2 或者是 solr 应用服务器 3。
这和客户的一般期望不一致。客户一般会把集群中的一个成员(例如 solr 应用服务器 1)作为专门的构建索引主机,其他集群成员不需要构建索引,而是通过索引复制(solr index replication)技术从构建索引主机上同步索引。