Skip to main content

configure instant search on separate server

Comments

11 comments

  • Permanently deleted user

    Yes, you most certainly can! As we haven't yet documented the steps, I'll outline them here:

    1. Download and unpackage the Geocortex Essentials 4.0.0 - Instant Search.zip file from the support site on the server you wish to install Instant Search on (let's call that server IS-SERVER).
    2. Run Geocortex Application Services 2.exe to install the service. You now have the components for Instant Search installed on IS-SERVER!
    3. Now it's time to point your Essentials to this new server. On your Essentials server (let's call it ESSENTIALS-SERVER), you'll need to change the following two files (they are identical):

    C:\Program Files (x86)\Latitude Geographics\Geocortex Essentials\Default\REST Elements\REST\bin\Geocortex.GAS.config.xml

     

    C:\Program Files (x86)\Latitude Geographics\Geocortex Essentials\Default\REST Elements\Manager\bin\Geocortex.GAS.config.xml

    By default, they look like this:

    <Configuration>

     

      <NodeSettings>

     

        <!--<NodeSettings Key="key" Value="value" />-->

     

      </NodeSettings>

     

      <ClusterSettings>

     

        <!--<ClusterSetting Key="key" Value="value" />-->

     

        <ClusterSetting Key="frontend.BaseAddr" Value="http://localhost :7280" />

     

        <ClusterSetting Key="redis.Host" Value="localhost " />

     

        <ClusterSetting Key="redis.Port" Value="6379" />

     

      </ClusterSettings>

     

    </Configuration>

    To point your Essentials instance to an Instant Search installed on IS-SERVER, you'll need to change the bolded+underlined address to the Instant Search server. An example would be:

        <ClusterSetting Key="frontend.BaseAddr" Value="http://IS-SERVER.domain.com :7280" />

    I bolded a localhost on the next line to point out something of importance. Geocortex Application Services runs Instant Search alongside Redis, which is used by Essentials to store session tokens. If you choose not to change this line, Essentials will continue to store session tokens in the Redis instance running locally (on ESSENTIALS-SERVER). You may change this line to point to IS-SERVER, though. This might be particularly useful if you are running multiple Essentials instances and want one dedicated location for sessions.

    After making and saving this change to both files, you might need to refresh your Essentials application for the changes to come into effect.

    Please let me know if you have any further questions!

    Chris

    0
  • Eric Herbert

    That works - thanks for the help!

    0
  • Permanently deleted user

    If we have a virtual server and can throw more RAM at it, is there any advantage to loading Instant Search on to a separate server?

    0
  • Permanently deleted user

    Probably not. The best and easiest way to increase response time from Instant Search is increasing the available memory for the Elasticsearch process (the steps are described in the documentation).

    When a search is performed and not all the result data is held in memory, however, the hard drive must be hit. If processes on the existing server are regularly consuming a large share of disk access resources (or, to a lesser extent, processor power), you might see improvements by running Instant Search elsewhere.

    There is, now that I think of it, one case where moving Instant Search to another server is always useful - when the new server has an SSD and the existing doesn't. You'll always get faster searches with one of those :)

    0
  • Permanently deleted user

    What we'd like to do is share the instant search index to our 2.4 million parcel layer across Essentials instances. Is this possible? We've set up an HTML5 viewer and we're trying to use an index that was created in an Essentials instance in another department. Making the changes to the configuration files as noted here is not sufficient to make this work.

    I know what the path to the Search folder is; will a search table connection work and, if so, how do we configure that connection for this purpose?

    0
  • Permanently deleted user

    Is this still possible with Geocortex Essentials 4.3? I cannot find a Geocortex.GAS.config.xml file in the folders listed in Chris's post.

     

    Thanks,

    Dileep

    0
  • Stefan Schweigert

    Hello Dileep,

     

    In GE 4.3, the location of these configuration files has been changed to: 
    • C:\Program Files\Latitude Geographics\Geocortex Core\Bin\Geocortex.Platform.Host.exe.config
    • C:\Program Files\Latitude Geographics\Geocortex Core\Geocortex.Core.config.xml

    The setting's configuration names and the steps outlined are roughly the same in the new version.

    0
  • Permanently deleted user

    Thanks Stefan. I will try that out.

    0
  • Permanently deleted user

    Stefan,

    I changed the machine name from "localhost" to a remote server in the files you listed. However, indexing still seems to be occurring on the local machine. This is what I tried:

    1. Changed "localhost" to a remote server name in these two files:
      1. C:\Program Files\Latitude Geographics\Geocortex Core\Bin\Geocortex.Platform.Host.exe.config

      2. C:\Program Files\Latitude Geographics\Geocortex Core\Geocortex.Core.config.xml

    2. Restarted two Windows services (Geocortex Core and Geocortex Agent) and three IIS application pools (Identity server, Essentials and Essentials admin).

    3. Opened GE Manager and started Instant Search scanning on a map service.

    After doing this, I see no activity on the remote server at all. CPU is at almost 0, the Geocortex data directory does not increase in size and there are no new entries in the log files. I do see these activities on the local machine though, and GE Manager does show scanning progress.

    Am I missing any steps here?

     

    0
  • Stefan Schweigert

    Hello Dileep,

     

    I believe that is all of the steps that are required but I've asked one of our developers to take a look at your issue and see if I've missed something.

     

    Thanks, Stefan.
    0
  • Permanently deleted user

    Hi Dileep,

    Since Instant Search runs out of process, and isn't bound to a web site, it's hosted in the Geocortex Core service instead of in IIS.  When it was first released, it was the only role running in Geocortex Core (named Geocortex Application Services 2 at the time) - so, you could download and run Instant Search separately beside an Essentials installation.   Since then, more roles have been added to Geocortex Core.  It's now responsible for running Instant Search, storing security tokens, generating images for print templates, scheduling periodic tasks for system maintenance, and maintaining connection info for distributed systems (and more!).  Consequently, we can't simply run it on another server like before.   Some of these roles can run remotely (like Instant Search) but others may assume that they are running on the same machine as Essentials.  Furthermore, some roles may try to work together in a cluster, or may disagree over working together in a cluster and will break when there are multiple parallel instances running.  Until we can resolve and test the issues, we don't recommend running Geocortex Core on a second server.   If you would like to pursue this further, please contact your account manager and we'll be happy to discuss ways in which we might accomplish this request.   Regards, -Malcolm
    0

Please sign in to leave a comment.