Saturday, 17 December 2016

RuleSet in ATG / Indexed Item Group

HI all, I feel all are good and doing their best. Today we are going to see some interesting topic on the indexing part of the endeca. We cannot claim this topic to be fully endeca . Its ATG topic that we are utilizing for the indexing as well. It is  considered to be the simpler one but I am writing this blog to ease most of the logic we write during the accessor time.Its very effective and easy.

Ruleset can be defined as the couple of condition that is written for some specific purpose or does some specific purpose.As of my knowledge on endeca there is no mechsanism where we can restrict the products or the skus to be restricted from the search , apart from the recordfilter property constraints. If we implement the above constraint also that’s going to be the highly performance driven one. If that does not require more than reverting the code is also a complex one.
ProductCatalog outputconfig is a component that is responsible for providing the product for indexing . in the above component we can define the Repository Item group property to be pointing to the IndexedItem Group component where we will be defining the ruleset.

Rule set has two types of the condition.
1) Accepts rule.
2) Rejects rule.
These rules were called during the indexing process and corresponding filtration is done.  You can find the oracle document briefly describing about this. I am going to describe in terms of  Integration with the ATG and some of the problems we face during the development of the endeca.

Case:1
To Remove the Inactive products during the Indexing. We can define this type of condition in both accepts and reject clause.
 rules=\
<ruleset>\
<accepts>\
                <rule op\=eq>\
                                <valueof target\="isActive">\
                                <valueof constant\="true">\
                 </rule>\
</accepts>\
 </ruleset>

Case: 2
To remove only the specific set of items during the indexing. Where item may be product or some other repo item. Were id is the repo id.
rules=\
<ruleset>\
<rejects>\
                <rule op\=includes>\
   <valueof constant\="[item1,item2]">\
  <valueof target\="id">\
    </rule>\
    </rejects>\
</ruleset>

How to define in that component .

/atg/commerce/search/IndexedItemsGroup.properties

Define the ruleset in the string format is must. we cannot define the ruleset for the skulevel . Since the product-sku mapping has defined the sku as map .



No comments:
Write comments