PublicCMS默认使用lucene做全文索引,在集群环境下部署通常会有索引文件读写冲突的情况
集群环境下部署PublicCMS,推荐使用elasticsearch做全文索引.
使用HibernateSearch作为搜索引擎驱动,可以用最小的代价迁移搜索引擎底层实现.
PublicCMS产品将不断跟进框架的升级,因此不同版本之间配置可能存在差异.
V4.0开发分支目前已升级到hibernate search6,对应elasticsearch的版本范围是5.6-7.10
将lucene改为elasticsearch也比较简单只需要修改配置文件cms.properties,启用以下配置,并将原来的cms.hibernate.configFilePath注释掉
cms.tokenizerFactory=standard #或其他elasticsearch已安装的分词器 cms.hibernate.configFilePath=config/hibernate-elasticsearch.properties
系统已经在config/hibernate-elasticsearch.properties提供了一些默认的配置和建议的配置项,你也可以修改这些配置项以适应你自己的环境,其中
配置项 | 默认值 | 含义 |
hibernate.search.backend.uris | http://localhost:9200 | elasticsearch服务地址,多个服务地址可以空格隔开 |
hibernate.search.backend.schema_management.minimal_required_status | yellow | elasticsearch最低级别,通常单节点部署只能达到yellow |
hibernate.search.backend.username | elasticsearch的用户名 | |
hibernate.search.backend.password | elasticsearch的密码 |
V4.0.202011及以前的版本使用的是HibernateSearch5,其elasticsearch版本应该是2.0-5.6之间
将lucene改为elasticsearch也比较简单只需要以下两步:
1. 修改配置文件cms.properties,启用以下配置,并将原来的cms.hibernate.configFilePath注释掉
cms.hibernate.configFilePath=config/hibernate-elasticsearch.properties
2. 还需要修改com.publiccms.entities.cms.CmsContent类,启用以下注解,并将原来的@Analyzer(definition = "cms")注解注释掉
@Analyzer(definition = "default")
系统已经在config/hibernate-elasticsearch.properties提供了一些默认的配置和建议的配置项,你也可以修改这些配置项以适应你自己的环境,其中
配置项 | 默认值 | 含义 |
hibernate.search.default.elasticsearch.host | http://127.0.0.1:9200 | elasticsearch服务地址,多个服务地址可以空格隔开 |
hibernate.search.default.elasticsearch.required_index_status | green | elasticsearch最低级别,通常单节点部署只能达到yellow |
hibernate.search.default.elasticsearch.username | elasticsearch的用户名 | |
hibernate.search.default.elasticsearch.password | elasticsearch的密码 |
更多其他参数还可以参考hibernatesearch集成elasticsearch的文档 https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#elasticsearch-integration
0条评论
发表评论