The <query> query type has a relQuestSettings attribute that, like responseNumberSettings, is a delimited string that encodes the values of a number of subattributes.

In the QueryRequest class, the corresponding relQuestSettings property is an atg.nucleus.ResolvingMap that stores these subattributes as a series of key/value pairs. When the query is submitted, the values in the relQuestSettings property are used to construct the string used in the query XML.

Setting activeSolutionsZones

The activeSolutionZones subattribute of relQuestSettings is a string containing a comma-separated list of the text properties in the index that are available for searching. Typically, you’ll want to set this to a list of all of the text properties in the index (after all, that’s why you included them). Rather than specifying the entire list explicitly, you can make all of the text properties available for searching by setting activeSolutionZones to an asterisk (*). For example, you might set this in the QueryRequest.properties file:

relQuestSettings=\
    activeSolutionZones=*

In some cases, however, you may want to make only a subset of the indexed text properties available for searching. For example, suppose your site has a Books section, and when customers search in this area, you want to search only the title and author properties. Rather than having two different indexes with different properties in them, you create a single index with the full set of desired properties for the overall site, but then override the value of activeSolutionZones in the pages of the Books section to restrict searches from those pages. For example:

<dsp:input bean="${FH}.searchRequest.relQuestSettings.activeSolutionZones"
   value="role:author,role:title"/>

When a customer enters a search query in this part of the site, ATG Search searches only these two properties. The search is faster, returning fewer but more relevant results.

 
loading table of contents...