There are two ways to define dimension and properties for Forge-less approach:
1) Define at Product-sku-output-config(PSOC) level
Ex:
DIMENSION: <property name="pattern" type="string" output-name="Pattern" multiselect-type="multi-or" is-dimension="true" />
PROPERTY: <property name="description" type="string" output-name="P_Description" text-searchable="true"/>
2) Define at Index config Level
File location: /opt/app/endeca/apps/APPNAME/config/index_config/index-config.json
a) Add dimension and property as below mentioned in example and you can define searchable, filter, roll-up, dimension, multi select etc...
Ex:
{
"indexConfig" : {
"attributes" : {
"jcr:primaryType" : "endeca:unstructured",
"record.id" : {
"propertyDataType" : "ALPHA",
"jcr:primaryType" : "endeca:property",
"isRecordFilterable" : true
},
"sku.margin" : {
"propertyDataType" : "DOUBLE",
"jcr:primaryType" : "endeca:property"
},
"product.repositoryId" : {
"propertyDataType" : "ALPHA",
"mergeAction" : "UPDATE",
"isRollupKey" : true,
"jcr:primaryType" : "endeca:property",
"isRecordFilterable" : true
},
"product.price_range" : {
"rangeComparisonType" : "FLOAT",
"multiSelectType" : "OR",
"sourcePropertyNames" : ["sku.sortPrice"],
"jcr:primaryType" : "endeca:dimension"
}
},
"precedenceRules" : {
},
"searchIndexConfig" : {
"isWildcardEnabledInDimensionSearch" : true,
"spellingDictMaxWordLength" : 16,
"spellingDictMinNumWordOccurrences" : 4,
"spellingDictMinWordLength" : 3
}
}
}
b) Once you update index-config.json make sure to set configurations at Endeca repository level.
Here is the command:
/opt/app/endeca/apps/APPNAME/control :>
./index_config_cmd.sh set-config -f ../config/index_config/index-config.json -o all
c) Run Endeca indexing to see your dimension(s) and propertie(s) added
1) Define at Product-sku-output-config(PSOC) level
Ex:
DIMENSION: <property name="pattern" type="string" output-name="Pattern" multiselect-type="multi-or" is-dimension="true" />
PROPERTY: <property name="description" type="string" output-name="P_Description" text-searchable="true"/>
2) Define at Index config Level
File location: /opt/app/endeca/apps/APPNAME/config/index_config/index-config.json
a) Add dimension and property as below mentioned in example and you can define searchable, filter, roll-up, dimension, multi select etc...
Ex:
{
"indexConfig" : {
"attributes" : {
"jcr:primaryType" : "endeca:unstructured",
"record.id" : {
"propertyDataType" : "ALPHA",
"jcr:primaryType" : "endeca:property",
"isRecordFilterable" : true
},
"sku.margin" : {
"propertyDataType" : "DOUBLE",
"jcr:primaryType" : "endeca:property"
},
"product.repositoryId" : {
"propertyDataType" : "ALPHA",
"mergeAction" : "UPDATE",
"isRollupKey" : true,
"jcr:primaryType" : "endeca:property",
"isRecordFilterable" : true
},
"product.price_range" : {
"rangeComparisonType" : "FLOAT",
"multiSelectType" : "OR",
"sourcePropertyNames" : ["sku.sortPrice"],
"jcr:primaryType" : "endeca:dimension"
}
},
"precedenceRules" : {
},
"searchIndexConfig" : {
"isWildcardEnabledInDimensionSearch" : true,
"spellingDictMaxWordLength" : 16,
"spellingDictMinNumWordOccurrences" : 4,
"spellingDictMinWordLength" : 3
}
}
}
b) Once you update index-config.json make sure to set configurations at Endeca repository level.
Here is the command:
/opt/app/endeca/apps/APPNAME/control :>
./index_config_cmd.sh set-config -f ../config/index_config/index-config.json -o all
c) Run Endeca indexing to see your dimension(s) and propertie(s) added
How would you create price ranges if you have store-specific pricing (Eg., store1 has $129.99, store2 has $139.99)?
ReplyDeleteHi Ravi ,
ReplyDeletePlease help me with the way to create endeca query with the rollup key that I have defined . I have tried a few ways but wach time the endeca request takes product.repositoryId as the rollup key . I am not even able to find a where this is set as default .
Thanks in advance!!
it is set into DefaultFilterState component
ReplyDelete