Filtering data and non-data records

If you wish to perform some queries only against data records and other queries only against PDRs, or against schema and configuration records, you can use the RecordKindOperator type to restrict records to a particular kind.

The RecordKindOperator type contains the RecordKind element, which allows the following values:
Value Description
data Restricts records to actual data records that you load to the data store.
properties Restricts records to those records that declare record attributes (PDRs).
nondata Restricts records to those records that do not represent data records, and instead represent all system records (PDRs, DDRs, GCR), records that define groups, records that define precedence rules (if any are created), records that define other configuration, or records that define semantic entity definitions (if any are created).

If you use this operator, you can restrict the State from which all other search and filtering operations in the Endeca Server will be performed. It is useful to use the RecordKindOperator type in cases when you want to issue subsequent queries only on a subset of records in the corpus, for example, only on those records that represent actual data records.

The following example illustrates how to specify the record kind with the RecordKindOperator:
<ns:Operator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:type="ns:RecordKindOperator">
  <ns:RecordKind>data</ns:RecordKind>
</ns:Operator>
If a record kind is specified, it is used in the State for the subsequent request, as shown in this abbreviated example of the response:
<cs:Results xmlns:cs="http://www.endeca.com/MDEX/conversation/1/0" 
xmlns:mdex="http://www.endeca.com/MDEX/XQuery/2009/09">
 <cs:Request>
    <cs:State>
      <ns3:RecordKind xmlns:ns2="http://www.endeca.com/MDEX/lql_parser/types" 
        xmlns:ns3="http://www.endeca.com/MDEX/conversation/1/0" 
        xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        data
      </ns3:RecordKind>
    </cs:State>
  </cs:Request>
</cs:Results>

If a new record kind is specified, it replaces the one specified previously. Record kinds are not visible in the user interface — they do not appear in breadcrumbs, for example. You can remove them from the State by using a PopRecordKindOperator.