Free-text search system architecture

The system architecture of the Guidewire free-text search feature comprises the following components:

  • The Guidewire PolicyCenter application.
  • The Guidewire Solr Extension, a modified version of the Apache Solr full-text search engine.
  • The Guidewire free-text batch load command.
  • The Free-text Search page on the Internal Tools tab in the PolicyCenter application as an alternative during development to running the free-text batch load command.

The components of the free-text search feature depend on configuration parameters and configuration files in two primary locations: the PolicyCenter home directory and a separate Guidewire Solr home directory.

Guidewire Solr Extension deployment options

Several deployment options are available for using Guidewire Solr Extension with PolicyCenter. While guidance and caveats come later, the following four options are possible regardless of whether PolicyCenter operates in a production environment or a development environment:
  • Guidewire Solr Extension can run on a physical host or on a Virtual Machine (VM).
  • Guidewire Solr Extension can run on the same host as PolicyCenter. It can also run on a separate host.
  • Guidewire Solr Extension can run on a single server or a cluster of servers.
  • Guidewire Solr Extension can use a number of host servers that is independent from whether PolicyCenter runs in a clustered configuration or in an unclustered configuration.

In the development environment alone, Guidewire Solr Extension and PolicyCenter can run in an embedded mode. In this mode, the two applications run as one in the same VM. Guidewire does not support embedded mode in a production environment.

Though options 1 through 4 lay out the possible deployments of Guidewire Solr Extension in the production environment, please note two caveats. Guidewire recommends that most customers run Guidewire Solr Extension on a separate physical host from PolicyCenter. Guidewire also recommends that larger customers running either Guidewire Solr Extension or PolicyCenter in a clustered configuration or in high availability also run the other application in a clustered configuration. Doing so avoids the other application becoming a single point of failure or bottleneck.

Free-text search system architecture in a production environment

The following diagram illustrates the system architecture for free-text search if you run PolicyCenter in a production environment. In a production environment, you must configure free-text search for external operation. In a development environment, such a configuration is an option but is not mandatory.


In external operation, the PolicyCenter free-text search production environment and development environment system architecture contains a Guidewire PolicyCenter application server, a database server, and a Guidewire Solr Extension application server. The Guidewire PolicyCenter application server contains a free-text search engine with ISolrSearchPlugin and ISolrMessageTransportPlugin running software and a Guidewire PolicyCenter home directory. The Guidewire PolicyCenter home directory contains the config.xml, policy-search-config.xml, and solrsearch-config.xml configuration files. The database server contains a database engine. The Guidewire Solr Extension application server contains a Guidewire Solr Extension instance, a free-text batch load command module, and a Guidewire Solr home directory. The Guidewire Solr home directory contains two principal folders: pc/solr/ and pc/solr/policy_active/conf. The pc/solr/ folder contains the solr.xml configuration file. The pc/solr/policy_active/conf folder contains the schema.xml and solrconfig.xml configuration files. The free-text batch load command uses the following configuration files: batchload.sh or batchload.bat, data-config.xml, batchload-config-databaseBrand.xml (where databaseBrand is a variable), and postprocess.sh or postprocess.bat. The Guidewire PolicyCenter application server sends SQL-based data exchanges to the database engine. The ISolrSearchPlugin and ISolrMessageTransportPlugin software objects exchange text upstream and downstream with the Guidewire Solr Extension application server. The database engine sends SQL-based data to the free-text batch load command module. The free-text batch load command module sends text-based data to the Guidewire Solr Extension application server.
Note: Guidewire supports running the separate application server instances for PolicyCenter and the Guidewire Solr Extension on the same hosts in production.

Free-text search system architecture in a development environment

The following diagram illustrates the system architecture for free-text search if you run PolicyCenter in a development environment. In a development environment, you are able to configure free-text search for either external operation or embedded operation.


In embedded operation, the PolicyCenter free-text search development environment system architecture contains a database server and a Guidewire PolicyCenter application server. The database server contains a database engine. The Guidewire PolicyCenter application server contains a free-text search engine, a Guidewire Solr Extension module, a Guidewire PolicyCenter home directory, and a Guidewire Solr home directory. The free-text search engine contains a Free-text Search, ISolrSearchPlugin, and ISolrMessageTransportPlugin running software. The Guidewire PolicyCenter home directory contains the config.xml, policy-search-config.xml, and solrsearch-config.xml configuration files. The Guidewire Solr home directory contains two principal folders: pc/solr/ and pc/solr/policy_active/conf. The pc/solr/ folder contains the solr.xml configuration file. The pc/solr/policy_active/conf folder contains the schema.xml and solfconfig.xml configuration files. The free-text batch load process uses the following configuration files: data-config.xml, batchload-config-databaseBrand.xml (where databaseBrand is a variable), and postprocess.sh or postprocess.bat. The database engine exchanges SQL-based data with the Guidewire PolicyCenter application server. The Free-text Search, ISolrSearchPlugin, and ISolrMessageTransportPlugin software objects exchange text with the Guidewire Solr Extension module.

With embedded operation, the Free-text Search page on the Internal Tools tab is available as an alternative to the free-text batch load command.

Free-text search configuration parameters and files

The components of the free-text search feature depend on configuration parameters and configuration files in two primary locations: the PolicyCenter home directory and a separate Guidewire Solr home directory.

Configuration parameters and files for free-text search in PolicyCenter

The following parameters and files enable and configure free-text search in PolicyCenter:
FreeTextSearchEnabled
A configuration parameter in config.xml, enabling certain back-end components of free-text search to fully operate. The default value is false.
EnableDisplayBasicSearchTab
A script parameter in script-parameters.xml, enabling the Search Policies Basic screen for free-text search. You define script parameters initially through Studio but administer them on the Script Parameters page of the Administration tab in the application. The script EnableDisplayBasicSearchTab parameter has no effect if the FreeTextSearchEnabled configuration parameter is set to false.
Note: Set this script parameter to false before running the free-text search batch load command, and set it back to true after the batch command finishes. Setting the parameter to false prevents users from performing free-text searches while the batch process runs.

PolicyCenter database and free-text search architecture during the batch load process
policy-search-config.xml
Provides detailed configuration of the fields that free-text search extracts from the PolicyCenter database and sends to the full-text search database for indexing and searching.
solrserver-config.xml
Configures how PolicyCenter works with the Guidewire Solr Extension, including connection information, and whether the mode of operation is external or embedded.

See also

Configuration files for the Guidewire Solr extension

The following files configure the Guidewire Solr Extension, the full-text search engine that the free-text search feature depends on. These configuration files control how the Guidewire Solr Extension loads data that PolicyCenter sends for indexing and how the Guidewire Solr Extension responds to search requests from PolicyCenter.

  • solr.xml – Defines the location in the Guidewire Solr home directory of the core for each searchable entity type in the Guidewire Solr Extension.
  • schema.xml – Defines fields of data as known in the Guidewire Solr Extension.

See also

Configuration files for the free-text batch load command

The following files configure the free-text batch load command. The command extracts data directly from the PolicyCenter database through native SQL commands and loads the extracted data into the Guidewire Solr Extension.

  • data-config.xml – Specifies the location of the index documents that the free-text batch load command creates for the Guidewire Solr Extension to load. The file also specifies the mapping between fields in the index documents and fields defined in policy-search-config.xml.
  • batchload-config-databaseBrand.xml – Specifies working resources for the free-text batch load command. The file also contains the native SQL that the free-text batch load command uses to extract data from the database server.
  • batchload.sh/batchload.bat – Runs the free-text batch load command. The file sets the following environment variables:
    • APP_PREFIX – The designation for PolicyCenter to use in a path
    • BASE_DIR – The root of the Guidewire Solr home directory
    • GWSOLR_HOME – The root of the Guidewire Solr Extension home directory, including the path to PolicyCenter files
    • CONFIGFILE – The batchload-config-databaseBrand.xml file to use
  • postprocess.sh/postprocess.bat – Collates and compiles index documents for the Guidewire Solr Extension using data selected from the relational database.

See also