You may also be able to reduce the size of your index by concatenating the values of text properties. For example, suppose a product’s SKUs have a color
property, whose values are red, green, blue, and yellow. The resulting entries in the XHTML document will be:
<div class="atg:role:childSKUs.color" id="1">red</div>
<div class="atg:role:childSKUs.color" id="2">green</div>
<div class="atg:role:childSKUs.color" id="3">blue</div>
<div class="atg:role:childSKUs.color" id="4">yellow</div>
By concatenating the values, you can reduce this to:
<div class="atg:role:childSKUs.color" id="1">red green blue yellow</div>
To combine these values into a single tag, specify the ConcatFilter
class in the XML definition file:
<property name="color" filter="concat"/>
This setting invokes an instance of the atg.repository.search.indexing.filter.ConcatFilter
class. Note that you do not need to create a Nucleus component to use this filter.
Some guidelines for using concat
:
Do not use the
concat
filter for metadata properties. This will almost always produce undesirable results.Concatenating property values may have some slight effects on the search results. It is probably best to use the
concat
filter only for properties with short text values, such as thecolor
property shown above. Concatenating properties with long text values, such aslongDescription
, can have negative effects.You can use both the
unique
and theconcat
filters on the same text property, by setting the value of thefilter
attribute to a comma-separated list. The filters are invoked in the order that they are listed, so it is important to put theunique
filter first for it to have an effect. For example:<property name="color" filter="unique,concat"/>