Configuring full text search for a server group
Use the following information to understand how full text search (FTS) works and how it is configured in a server group environment.
Overview of how FTS works in a server group
FTS within BMC Remedy Action Request (AR) System is made up of the following primary components:
- FTS core – manages the FTS functionality using Lucene library
- FTS Indexer – part of AR System server
- FTS Searcher – part of AR System server and FTS Plug-in server
- FTS plug-in — a Java plug-in, which runs under the FTS Plugin server to serve search requests from the remote AR System servers (which are not indexer servers) in the server group.
- Index – Lucene index files
As events occur within AR System that cause data to be indexed, the AR System server sends a message to FTS Indexer which then adds, deletes, or updates data within the index. Other events could include a request to search the index.
If AR System server is not the indexer in a server group, the AR System server sends the search request to the FTS plug-in which is running under remote FTS plug-in server on the indexer server (where the index exists). The remote FTS plug-in server returns the search results to AR System server and then the AR System server processes the data accordingly.
If AR System server is the indexer, it performs the search requests locally in the index and then returns the search results to the client.
When you configure a server group for FTS, ensure that the following conditions are met:
- The required number of servers are designated as FTS indexing servers in the server group.
- The FTS indexing server is the AR System server that also has the FTS collection and conf directories located on a local disk.
The FTS indexing server hosts a FTS plug-in server for serving the search requests from the remote AR System servers that are not designated as indexer server.
You can designate a server as the FTS indexing server by ranking it in the AR System Server Group Operation Ranking form. For more information, see Setting failover rankings for servers and operations.
FTS uses only one plug-in server as the reader (searcher). The reader plug-in is installed on the FTS indexing server. Only the designated indexing FTS server has a ranking entry in the AR System Server Group Operation Ranking form. This AR System server acts as FTS indexer and FTS searcher for local search requests. The reader (searcher) FTS plug-in server serves as the searcher for all the other AR System servers in the server group that are not designated as indexing server, so you must configure all other non-indexing servers to connect to the searcher FTS plug-in server instance running on the FTS indexing server. The searcher instance runs on a separate port on the FTS indexing server.
The events that cause data to be written to the index result in data being put into the AR System database as a queue of items to index. Only the FTS indexing server processes index requests from this queue. However, any instance of AR System server can send a search request to its corresponding FTS plug-in. This ensures index integrity. For more information, see FTS plug-in configuration. There is no search fail-over for the indexer AR System server.
Note
When you perform full text search on a computer, the FTS searcher uses the stop words configured on the corresponding indexer server. The FTS searcher does not use the stop words configured on the computer on which full text search is performed.
Configuring FTS for a server group
If you use FTS in a server group, you can designate more than one server as indexing server in the server group.
Each FTS indexing server has its own virtual queue of data to index. When AR System queues data for indexing in parallel to AR Database changes in data, it queues separately for each FTS Indexing server as designated by the Server Group Ranking form for FTS.
In a server group, the server that owns the full text indexing operation processes all pending indexing tasks regardless of their server of origin. (The other servers have read-only access to the index files.)
FTS is configured after all servers in the group have been installed and configured to run within a server group. It is recommended that the FTS collection directory and the FTS configuration directory be located on the same computer.
To set up FTS in a server group
Rank the FTS servers in the AR System Server Group Operation Ranking form. For more information, see Setting failover rankings for servers and operations.
Note
You should use the FTS indexing server, which is ranked 1 in the AR System Server Group Operation Ranking form, for searching and the other FTS indexing server, which is ranked 2, as the failover server.
- In a browser, open the BMC Remedy AR System Administration Console, and click System > General > FTS Configuration.
- Complete the form as per FTS Configuration form in the AR System Administration Console.
Comments
Hello there,
I am confused with two sentences in the text above.
One sentence tells us that: "Only the designated indexing FTS server has a ranking entry in the AR System Server Group Operation Ranking form."
And the configuration note says: "You should use the FTS indexing server, which is ranked 1 in the AR System Server Group Operation Ranking form, for searching and the other FTS indexing server, which is ranked 2, as the failover server."
If we have 4 AR Servers in a group, can we configure the #1 as the primary FTS indexer and the #2 and #4 as the FTS Searcher in the ranking form?
Thanks,
Martin.
Hello Martin,
We are verifying this with the technical team. We will get back to you soon.
Thanks,
Prachi
A server which has a valid rank for "Full Text Index" operation in the AR System Server Group Operation Ranking form will act as FTS indexing server.
A server which has a Null rank for "Full Text Index" operation in the AR System Server Group Operation Ranking form will act as FTS Searcher server.
If we have 3 AR Servers in a group,
1)The rank#1 server with "Full Text Index" operation as rank#1 will act as FTS indexing server
2)The rank#2 server with "Full Text Index" operation as rank#2 will act as FTS indexing server (failover server)
3) The rank#3 server with "Full Text Index" operation rank as Null will act as FTS Searcher server.
For all the three servers we need to configure "FTS Config" form.
is it best to make the primary app server one of the "FTS Indexing Servers" ? or is it better to designate to other app servers in the group? which would give better performance?
i think i found the answer here: : https://docs.bmc.com/docs/display/public/itsm81/Sizing+and+deployment+considerations
"This requires the indexer to run on one of the AR System server computers in the server group. Because this indexer consumes CPU, run it on a back end AR System server (which is typically not serving online user traffic). The index should be local and not on shared storage (NAS/SAN)."
I will verify this with the technical team and get back to you.
Thanks,
Prachi
thanks, the section 'To setup FTS in a server group' I think should be more detailed and read more along these lines:
step 1. work out which servers in the group will be index servers and which will be search servers (how? what is recommended for different number of app servers?)
step 2. login onto servers to use as fts index servers (use background non user server if possible, use local disk folders), set FTS config in AR System administration for them to be server group indexers, directories , ports , etc.
step 3. login to servers to use as fts searcher, set FTS config form to identify them as server group searchers.
step 4 restart services on all servers.. (since it says this is needed in the config page)
step 5.. log into server ranking and set values for index server details and don't add searchers.
step 6. verify working..? (how?)
Thank you, Colin for all your inputs. We will be updating the documentation very soon.
there should be a link to this page on this article as they seem linked: https://docs.bmc.com/docs/display/public/ars91/High-availability+architecture+for+FTS
Done. I have updated the topic.
should the FTS collection and FTS config folders be on a shared folder that all servers can access? there is no mention of this here and this is clearly specified in previous versions of this page..
Hello Colin,
We have mentioned the following in our documentation above:
FTS is configured after all servers in the group have been installed and configured to run within a server group. It is recommended that the FTS collection directory and the FTS configuration directory be located on the same computer.
Thanks,
Prachi
yes i read that but it makes no sense to me, if i have 5 app servers in a server group with FTS Index ranking from 1-5 then if the collection files are on one computer then how can it failover, shouldn't the directory be a shared folder? read here the red text i've highlighted in the version 8 of this page.. which makes sense..
To enable FTS in a multiple-server environment
1. Make sure that all AR System servers in the group share the same FTS index collectiondirectory. You can specify the location of this directory in the following ways:
Full-Text-Collection-Directory: directoryName
Full-Text-Configuration-Directory: directoryName
Make sure that all AR System servers in the group can access the collection and configuration directories.
2. If you change the collection or configuration directory, restart the AR System server.
this page is quite relevant and could be linked here:
https://docs.bmc.com/docs/display/public/ars91/Enabling+FTS+high+availability
Thanks Colin. Done.
HEllo,
Doubts:
1) The parameter Server-Plugin-Alias: ARSYS.ARF.FTS ARSYS.ARF.FTS no longer exists?
2) In armonitor.conf - The parameter must be FTS name, correct (example)?
#/export/jdk1.8.0_92/jre/bin/java -Xmx3072m -classpath /export/bmc/ars/pluginsvr/fts/secondary:/export/bmc/ars/pluginsvr/fts/core:/export/bmc/ars/pluginsvr:/export/bmc/ars/pluginsvr/arpluginsvr91_build001.jar: com.bmc.arsys.pluginsvr.ARPluginServerMain -x example -i /export/bmc/ars -m
3) In AR System Administration: Plugin Server Configuration form. Does it need to exist these 2 lines?
4) In the FTS configuration form there is only READER. And no more INDEXER and SEARCHER
From version 9.x changed much. Could you provide a document with the correct settings? I have a server group environment (1 ADM and 2 USER). I want to know how to configure via ar.conf and armonitor.conf these environment.
Regards,
Hello Fernanda,
We have contacted our technical team for the details. We will update you soon.
Thanks,
Prachi
Hello Fernanda.
Please see my comments inline
1) The parameter Server-Plugin-Alias: ARSYS.ARF.FTS ARSYS.ARF.FTS no longer exists?
>>>> it does exist. in case of FTS searcher this particular plugin will help server to find indexer.
2) In armonitor.conf - The parameter must be FTS name, correct (example)?
#/export/jdk1.8.0_92/jre/bin/java -Xmx3072m -classpath /export/bmc/ars/pluginsvr/fts/secondary:/export/bmc/ars/pluginsvr/fts/core:/export/bmc/ars/pluginsvr:/export/bmc/ars/pluginsvr/arpluginsvr91_build001.jar: com.bmc.arsys.pluginsvr.ARPluginServerMain -x example -i /export/bmc/ars -m
>>>> By default these line is allready present in armonitor.cfg in case if you happened to add this line manually then you should replace word 'example' with the same server name.
3) In AR System Administration: Plugin Server Configuration form. Does it need to exist these 2 lines?
>>>> Yes both these lines are required in "AR System Administration: Plugin Server Configuration"
4)In the FTS configuration form there is only READER. And no more INDEXER and SEARCHER
>>>> since 8.1 reader is called as searcher and writer is called as indexer. only terminology is changed.
Thanks
Sagar
Hi,
1) ARSYS.ARF.FTS ARSYS.ARF.FTS . This parameter must exist in all ar.conf? I remember that previous versions existed on all servers with the index server name. Or is it just to exist on the index server? And no longer on the other search servers?
2) In the FTS configuration form there is only READER. And no more INDEXER and SEARCHER.Currently it is different. See image: ftp://ftp.cscbrasil.com.br/Incoming/image/
Hello Fernanda,
Please find the answers inline.
1) ARSYS.ARF.FTS ARSYS.ARF.FTS . This parameter must exist in all ar.conf? I remember that previous versions existed on all servers with the index server name. Or is it just to exist on the index server? And no longer on the other search servers?
>>>>>> For information on ARSYS.ARF.FTS ARSYS.ARF.FTS see Configuring FTS High Availability failover after an upgrade.
2) In the FTS configuration form there is only READER. And no more INDEXER and SEARCHER.Currently it is different. See image: ftp://ftp.cscbrasil.com.br/Incoming/image/
>>>>>> The details for Server Group-Indexer and Server Group-Searcher is avialable on FTS Configuration form in the AR System Administration Console topic.
Thanks,
Prachi