Synonyms are implemented in Watson Personalized Search by mapping a root word to a list of synonymous words. The synonyms are handled directly by Solr, and the root word and its synonyms are specific to a Watson Personalized Search instance.
Here are a couple of examples of root words and assigned synonyms:
Root word: TV
Synonyms: television, tube, telly, cable, Uverse
Root Word: Oreo
Synonyms: candy, cookie
Queries for “TV” will also match and be ranked on “televison” or “Uverse”. Likewise, an “Oreo” search will find “candy” and “cookie” in documents as per the Solr query and commands.
Currently, multiple word synonyms are not supported due to a Solr restriction. The Watson Personalized Search API accepts multiple word mappings, but Solr does not match those words as a phrase, but rather as multiple individual words.
For example, the root word “TV” might be assigned “boob tube” or “idiot box” as synonyms. If the search contains the word “TV”, the results rank “boob” and “tube”, and “idiot” and “box” individually.
The synonyms are persisted and curated in Couchbase as an array inside the Instance object. The synonym mappings are then sent to Solr. The Solr instance needs to be re-indexed when new synonyms are added. New Synonyms will not be available until Solr is finished the rebuild.
NOTE: Google Search Appliance maps the synonym functionality to rules. However, synonyms are not handled by the Search Insights Rules Engine. The Search Insights synonyms are handled only by Solr. You can define a rule to add terms to a given query, which are treated like synonyms. This is inefficient and done at runtime, rather than indexed. It will slow searches down.
It is also not guaranteed that synonyms handled by Solr indexes will return the same results as additional query terms added by a rule. In fact, with a high degree of certainty, the results of Rule Additional Query Terms and Solr Synonyms will not be equivalent.