PublicCMS默认使用lucene做全文索引,在集群环境下部署通常会有索引文件读写冲突的情况

    lucene-backend.png

    集群环境下部署PublicCMS,推荐使用elasticsearch做全文索引.

    使用HibernateSearch作为搜索引擎驱动,可以用最小的代价迁移搜索引擎底层实现.

    PublicCMS产品将不断跟进框架的升级,因此不同版本之间配置可能存在差异.

image.png

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:9200elasticsearch服务地址,多个服务地址可以空格隔开
hibernate.search.backend.schema_management.minimal_required_statusyellowelasticsearch最低级别,通常单节点部署只能达到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")

elasticsearch-backend.png

系统已经在config/hibernate-elasticsearch.properties提供了一些默认的配置和建议的配置项,你也可以修改这些配置项以适应你自己的环境,其中

配置项默认值含义
hibernate.search.default.elasticsearch.hosthttp://127.0.0.1:9200elasticsearch服务地址,多个服务地址可以空格隔开
hibernate.search.default.elasticsearch.required_index_statusgreenelasticsearch最低级别,通常单节点部署只能达到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

标签:elasticsearch

0条评论
发表评论