zebraidx and zebrasrv are both driven by a master configuration file, which may refer to other subsidiary configuration files. By default, they try to use zebra.cfg in the working directory as the master file; but this can be changed using the -c option to specify an alternative master configuration file.
The master configuration file tells Zebra:
Where to find subsidiary configuration files, including both those that are named explicitly and a few ``magic'' files such as default.idx, which specifies the default indexing rules.
What record schemas to support. (Subsidiary files specifiy how to index the contents of records in those schemas, and what format to use when presenting records in those schemas to client software.)
What attribute sets to recognise in searches. (Subsidiary files specify how to interpret the attributes in terms of the indexes that are created on the records.)
Policy details such as what type of input format to expect when adding new records, what low-level indexing algorithm to use, how to identify potential duplicate records, etc.
Now let's see what goes in the zebra.cfg file for some example configurations.