publiccms默认使用lucene做全文索引,在集群环境下部署通常会有索引文件读写冲突的情况,集群环境下部署PublicCMS,推荐使用elasticsearch做全文索引.使用HibernateSearch作为搜索引擎驱动,可以用最小的代价迁移搜索引擎底层实现.
PublicCMS产品将不断跟进框架的升级,因此不同版本之间配置可能存在差异. 不同版本需要es或opensearch版本对应关系查看https://www.publiccms.com/guide/628.html
将lucene改为elasticsearch或opensearch也比较简单只需要修改配置文件cms.properties,启用以下配置
cms.tokenizerFactory=standard #或其他elasticsearch已安装的分词器比如ik_smart(安装方法bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.10.0
并将原来的config/hibernate.properties中backend lucene部分注释掉
##backend lucene #hibernate.search.backend.analysis.configurer=com.publiccms.common.search.CmsLuceneAnalysisConfigurer #hibernate.search.backend.type=lucene #hibernate.search.backend.lucene_version=LATEST ##backend elasticsearch hibernate.search.backend.analysis.configurer=com.publiccms.common.search.CmsElasticsearchAnalysisConfigurer hibernate.search.backend.type=elasticsearch hibernate.search.backend.uris=http://localhost:9200,http://localhost:9201 hibernate.search.backend.schema_management.minimal_required_status=yellow hibernate.search.backend.schema_management.minimal_required_status_wait_timeout=10000 hibernate.search.backend.username=elastic hibernate.search.backend.password=password
系统已经在config/hibernate.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.202302及以前版本需要,其elasticsearch版本应该是5.6-7.10之间
1.修改配置文件cms.properties,启用以下配置,并将原来的cms.hibernate.configFilePath注释掉
cms.tokenizerFactory=standard #或其他elasticsearch已安装的分词器 cms.hibernate.configFilePath=config/hibernate-elasticsearch.properties
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")
更多其他参数还可以参考hibernatesearch集成elasticsearch的文档 https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#elasticsearch-integration
标签:elasticsearch,l
0条评论
发表评论