The ATG-Endeca integration includes several record filter builder components. Here are few which are most commonly used:
1) A filter that restricts the set of records returned to only those associated with specified sites.
It uses product.siteId attribute.
/atg/endeca/assembler/cartridge/manager/filter/SiteFilterBuilder
2) A filter that restricts the set of records returned to only those in the current language.
It uses product.language attribute.
/atg/endeca/assembler/cartridge/manager/filter/LanguageFilterBuilder
3) A filter that restricts the set of records returned to only those associated with the appropriate catalogs.
It uses product.catalogId attribute.
/atg/endeca/assembler/cartridge/manager/filter/CatalogFilterBuilder
To enable a specific record filter builder component, you add it to the recordFilterBuilders
property of the
/atg/endeca/assembler/cartridge/manager/NavigationStateBuilder
component.
recordFilterBuilders+=\
/atg/endeca/assembler/cartridge/manager/filter/CatalogFilterBuilder,
/atg/endeca/assembler/cartridge/manager/filter/SiteFilterBuilder
Question, what if I wanted to add on another filter to the Endeca queries, let's say adding Nr=NOT(product.category:cat1). what approach would you recommend?
ReplyDeleteI have two ideas
1. Extending the CatalogFilterBuilder class and modifying/adding on to filter that is returned from the super class.
2. Add a custom filter class to the recordFilterBuilders. I'm not sure what this class would look like.
Thank a lot. You have done excellent job. I enjoyed your blog . Nice efforts ESTIMATING & COST ADVICE
ReplyDelete