When configuring attributes for refinements, it is useful to first obtain a list of available attributes. You can do this, utilizing PropertyListConfig request of the Conversation Web Service, or listProperties and RecordKind requests from the Configuration Web Service.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <Request xmlns="http://www.endeca.com/MDEX/conversation/3/0"> <State/> <PropertyListConfig Id="MyAttrs"/> </Request> </soapenv:Body> </soapenv:Envelope>
Note that this sample request uses an empty, unnamed state.
<cs:Property Key="ProdType" Type="mdex:string" Dimension="true" DisplayName="Product Type" Refinable="true"> <cs:PropertyRecord> <cs:attribute name="mdex-property_DisplayName" type="mdex:string">Wine Type</cs:attribute> <cs:attribute name="mdex-property_IsPropertyValueSearchable" type="mdex:boolean">true</cs:attribute> <cs:attribute name="mdex-property_IsSingleAssign" type="mdex:boolean">false</cs:attribute> <cs:attribute name="mdex-property_IsTextSearchable" type="mdex:boolean">true</cs:attribute> <cs:attribute name="mdex-property_IsUnique" type="mdex:boolean">false</cs:attribute> <cs:attribute name="mdex-property_Key" type="mdex:string">ProdType</cs:attribute> <cs:attribute name="mdex-property_Language" type="mdex:string">unknown</cs:attribute> <cs:attribute name="mdex-property_TextSearchAllowsWildcards" type="mdex:boolean">true</cs:attribute> <cs:attribute name="mdex-property_Type" type="mdex:string">mdex:string</cs:attribute> <cs:attribute name="system-navigation_Select" type="mdex:string">single</cs:attribute> <cs:attribute name="system-navigation_ShowRecordCounts" type="mdex:boolean">true</cs:attribute> <cs:attribute name="system-navigation_Sorting" type="mdex:string">record-count</cs:attribute> </cs:PropertyRecord> <cs:DimensionRecord> <cs:attribute name="mdex-dimension-value_Parent" type="mdex:string">mdex-dimension_ProdType_Parent</cs:attribute> <cs:attribute name="mdex-dimension-value_Spec" type="mdex:string">mdex-dimension_ProdType_Spec</cs:attribute> <cs:attribute name="mdex-dimension_EnableRefinements" type="mdex:boolean">true</cs:attribute> <cs:attribute name="mdex-dimension_IsDimensionSearchHierarchical" type="mdex:boolean">true</cs:attribute> <cs:attribute name="mdex-dimension_IsRecordSearchHierarchical" type="mdex:boolean">true</cs:attribute> <cs:attribute name="mdex-dimension_Key" type="mdex:string">WineType</cs:attribute> </cs:DimensionRecord> </cs:Property>
Besides the PropertyListConfig type, you can use two other methods to get a list of the attributes in a data domain.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.endeca.com/MDEX/config/services/types/3/0" xmlns:ns1="http://www.endeca.com/MDEX/config/XQuery/2009/09"> <soapenv:Header/> <soapenv:Body> <ns:configTransaction> <ns:listProperties/> </ns:configTransaction> </soapenv:Body> </soapenv:Envelope>
Another method is using the RecordKind filter with the nondata value. For usage information, see Filtering data and non-data records.