InternalIndexSet - used to power the Umbraco Backoffice search, and therefore includes unpublished content - (do not remove this)

InternalMemberIndexSet - used by the Umbraco Backoffice to index Members - (do not remove this)

ExternalIndexSet - Available to use for searching published content on the Umbraco site implementation.

In addition custom IndexSets can be created for indexing different parts or sites within your Umbraco implementation, or indexing content in different languages, or even content sources outside of Umbraco!

Basic Configuration for an IndexSet

The basic configuration for an IndexSet involves specifying the following two attributes:

SetName - the name of the IndexSet, it's convention to have 'IndexSet' at the end of the name, eg ExampleIndexSet will work 'by convention' with an ExampleIndexer and an ExampleSearcher.

IndexPath - the path on disk where your Examine Index files will be stored.

IndexParentId - the Umbraco id of the item in the tree to begin indexing beneath, this defaults to -1 (the root of the site). You could use this to create separate IndexSets for different parts of your site.
eg

would create an IndexSet in the app_data temp folder of your Umbraco site. Make sure your application has the necessary permissions to update files in this location.

You can view the status of your IndexSets via the Umbraco backoffice's Developer Section - Examine Management tab. From here you can see how many items are in a particular index, search the index, and can trigger an index rebuild.

Advanced configuration for an IndexSet

Filters

In addition to the basic configuration of an IndexSet you can also specify the following filters on the XML content that is sent to Examine for indexing:

IndexAttributeFields - a list of attributes to include in the index (if the XML you are indexing contains attributes).

In this example only document types based on the favThings doc type will be added to the index, and only the title and description properties will be indexed.

Field Types and Sorting

By default Examine will index all field values as strings. What this means is that if you want to perform custom queries such as a Range query on numbers or dates, or to be able to sort search results by a certain field, then you need to tell Examine about the field 'type' in the IndexSet configuration to avoid unpredictable results. (eg 1,10,100,2,3,30,4 - if numbers are sorted alphabetically)

Example Default ExamineIndex.Config file

<ExamineLuceneIndexSets>
<!-- The internal index set used by Umbraco backoffice - DO NOT REMOVE -->
<IndexSetSetName="InternalIndexSet"IndexPath="~/App_Data/TEMP/ExamineIndexes/Internal/"/><!-- The internal index set used by Umbraco backoffice for indexing members - DO NOT REMOVE -->
<IndexSetSetName="InternalMemberIndexSet"IndexPath="~/App_Data/TEMP/ExamineIndexes/InternalMember/">
<IndexAttributeFields>
<addName="id"/>
<addName="nodeName"/>
<addName="updateDate"/>
<addName="writerName"/>
<addName="loginName"/>
<addName="email"/>
<addName="nodeTypeAlias"/>
</IndexAttributeFields>
</IndexSet>
<!-- Default Indexset for external searches, this indexes all fields on all types of nodes-->
<IndexSetSetName="ExternalIndexSet"IndexPath="~/App_Data/TEMP/ExamineIndexes/External/"/>
</ExamineLuceneIndexSets>

Further information

Our.umbraco.com is the community mothership for Umbraco, the open source asp.net cms. With a friendly forum for all your questions, a comprehensive documentation and a ton of packages from the community.
This site is running
Umbraco version 7.13.1