Understanding the Index Definition file

The Index Definition document allows you to specify what is indexed by IXIA CCMS.

The Index Definition file lives at the top level of the system configuration, and is one of the most critical files of the CCMS. Some of its indexes apply only to CCMS Desktop and some apply only to CCMS Web, but most apply to both.

CCMS indexes are specified using XPath, which is a query language used to navigate and select nodes (elements, attributes, text, etc.) within an XML or HTML document. XPath is not unique to the CCMS. It is a widely recognized standard. Explaining XPath is outside the scope of this document. If you are interested in learning more, there are many excellent online and print resources available.

CAUTION: Be careful when editing the Index Definition document. Changes can significantly affect the indexing process, and any errors in the document can lead to data corruption or other errors. Consult with IXIA CCMS Customer Support before making changes if you are unsure.

The Index Definitions are divided into three sections:

indexes

The indexes section contains all the individual indexes that the CCMS uses. Most indexes apply everywhere, but a few apply only to Standard or DRM deployments.

Content indexes

Some indexes gather DITA attributes or other aspects of the content itself. Here is an example of an index for an attribute.

<index NAME="audience">
            <!-- Index referenced by the Advanced Search on attributes -->
            <stringindex KEEPEXTRACTEDVALUES="True">
                <elements>
                    <element DEPTH="INFINITE" XPATH="//@audience"/>
                </elements>
            </stringindex>
        </index>

Customproperty indexes

Other indexes gather CCMS properties. This information is not part of the content itself but is recorded in each object's properties file or customproperties file.

Here is an example of a customproperty index that records who is assigned to an object:

<index CUSTOMPROPERTY="True" NAME="assigned_to" SYNC="True">
            <!-- System index required by the DITA CMS -->
            <stringindex KEEPEXTRACTEDVALUES="True">
                <elements>
                    <element DEPTH="INFINITE" XPATH="//assignedTo"/>
                </elements>
            </stringindex>
        </index>

Here is another customproperty index that records the original filename of objects that are imported from outside the CCMS:

<index CUSTOMPROPERTY="True" NAME="originalFilename">
            <stringindex KEEPEXTRACTEDVALUES="True">
                <elements>
                    <element DEPTH="0" XPATH="//userproperty[@type='originalFilename']"/>
                </elements>
            </stringindex>
        </index>

You can easily spot a customproperty index because it has the @CUSTOMPROPERTY="True" attribute.

Knowing whether an index is a content index or a customproperty index is important when you use the index for things like defining display columns or additional search options.

units

Units group together multiple DITA elements. You can search a unit as it if were a single element.

Here is the unit definition for the <p> element:

<unit NAME="p">
            <unitelements>
                <unitelement XPATH="//*[contains(@class,' topic/p ')]"/>
            </unitelements>
        </unit>

A <p> element can have any number of elements as children. By defining a unit for p, you enable the CCMS to more efficiently search for <p> elements and whatever children are present in one step.

Generally speaking, if you want to enable search on a DITA element that is not already enabled in the CCMS, you should add it to the units section.

However, if you want to display the contents of the element in a view or a datagrid, you must add the index to the indexes section.

summaries

The summaries section specifies which indexes should be cached to enable rapid display. For example, when you search for topics, you do not want the CCMS to have to recalculate the titles of each object before displaying the results. This would significantly slow down the system. Instead, the CCMS caches the object titles so that it can quickly display them in search results.

To enable caching of the object titles, the title index is included in the summaries section:

<field NAME="title" TYPE="Index" VALUE="All"/>

Likewise, any index for which you want to create a display column must be included in the summaries section as well.

There are separate summaries sections for CCMS Desktop (fullsummary) andCCMS Web (ixiasoftccmssummary).