SuperMap iPortal 基于 Elasticsearch 分布式搜索引擎实现了资源中心、全局搜索和服务访问统计功能。SuperMap iPortal 产品包默认使用内置的 ElasticSearch 搜索服务器,您无需任何配置即可正常使用 iPortal 的相关功能。您也可更改内置搜索服务的默认配置(如端口号、集群名等)以满足实际生产环境。内置搜索服务的优点是:操作简单,针对小型的门户网站应用。

如果 iPortal 的内置搜索服务无法满足您的业务需求,您可以使用自己独立部署的 Elasticsearch 搜索服务器。iPortal 支持配置 6.6+ 版本的 Elasticsearch,且需包含 ICU Analysis 插件(版本号需与 Elasticsearch 保持一致)。 具体配置过程如下:

  1. 打开 %SuperMap iPortal_HOME%/webapps/iportal/WEB-INF/config/search/WEB-INF 目录下的 search-beans.xml 配置文件,可以根据您自己部署的 Elasticsearch 服务器更改参数,两者需保持一致。

<bean id="esSetting" class="com.supermap.iportal.search.commontypes.ESSetting">

    <property name="address" value="127.0.0.1"></property>

    <property name="port" value="39200"></property>  

    <property name="clusterName" value="myapplication"></property>

    <!-- <property name="nodeName" value="node1"></property> -->

    <property name="indexName" value="portalsearch"></property>

    <property name="numberOfShards" value="5"></property>

    <property name="numberOfReplicas" value="0"></property>

</bean>

  • address:Elasticsearch 的 IP 地址。默认为本机 IP:127.0.0.1,使用 iPortal 自带的 Elasticsearch。
  • port:Elasticsearch 的 HTTP 协议通讯端口号。默认值:39200。
  • clusterName:Elasticsearch 的集群名称。
  • nodeName:Elasticsearch 的节点名称。可选配置项,如需指定 Elasticsearch 节点,在配置时需要将该行的注释打开。
  • indexName:Elasticsearch 里存储 iPortal 所有资源索引的索引库名称。用户可自定义名称,若对应的索引库不存在,iPortal 将自动创建索引库。
  • numberOfShards:索引分片数。设置 Elasticsearch 对索引进行划分的分片数量。默认值:5,将索引划分为 5 片。
  • numberOfReplicas:索引拷贝数。默认值:0,没有拷贝索引副本。
  1. 修改 %SuperMap iPortal_HOME%/webapps/iportal/WEB-INF 目录下的 iportal.xml 配置文件,具体配置项如下:

<IportalConfig>

  ...

  <modulesConfig>

    <searchModuleConfig class="com.supermap.server.config.BuildinSearchConfig">

      <enable>true</enable>

      <reindexAllResources>true</reindexAllResources>

      <startElasticSearch>true</startElasticSearch>

      <port>8192</port>

    </searchModuleConfig>

  </modulesConfig>

  ...

</IportalConfig>

  • <enable>:是否启用搜索服务。默认值: true。注意:此参数必须设置为 true。
  • <reindexAllResources>:是否重新索引已有 iPortal 资源。重建索引后,此配置会自动设置为 false。
  • <startElasticSearch>:是否启用 iPortal 内置的 Elasticsearch。默认值:true。如果您希望使用自己搭建的 Elasticsearch 服务器,需要将该值设置为 false。
  • <port>:搜索服务的端口。默认值:8192。

配置完成后,重启 iPortal 即可生效。