configure instant search on separate server
Is it possible to configure instant search to run on a separate server? If so, what are the steps to configure this approach?
Thanks
Eric
-
Yes, you most certainly can! As we haven't yet documented the steps, I'll outline them here:
- 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).
- Run Geocortex Application Services 2.exe to install the service. You now have the components for Instant Search installed on IS-SERVER!
- 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.xmlBy 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 -
That works - thanks for the help!
0 -
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 -
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 -
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 -
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 -
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 -
Thanks Stefan. I will try that out.
0 -
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:
- Changed "localhost" to a remote server name in these two files:
-
C:\Program Files\Latitude Geographics\Geocortex Core\Bin\Geocortex.Platform.Host.exe.config
-
C:\Program Files\Latitude Geographics\Geocortex Core\Geocortex.Core.config.xml
-
-
Restarted two Windows services (Geocortex Core and Geocortex Agent) and three IIS application pools (Identity server, Essentials and Essentials admin).
-
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 - Changed "localhost" to a remote server name in these two files:
-
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 -
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, -Malcolm0
Du måste logga in om du vill lämna en kommentar.
Kommentarer
11 kommentarer