Конфигурационный файл источника данных должен содержать не менее одной секции, описывающей соответствие между индексируемыми документами и записями базы данных. Каждая секция должна иметь произвольное, но уникальное имя, отличающее ее от других секций. В секции могут быть заданы следующие директивы.
UrlQuerySQL-запрос, при помощи которого можно получить список всех записей базы данных, подлежащих индексированию. Обычно это оператор SELECT по полю или нескольким полям с неповторяющимися значениями (по первичному ключу, если пользоваться терминологией баз данных).
Пример. UrlQuery: SELECT id FROM mydata Так как результатом этого запроса является совокупность всех записей таблицы по полю id, будут проиндексированы все данные, содержащиеся в mydata. При этом важно, чтобы содержимое поля id было уникально. UrlQuery : SELECT id FROM mydata WHERE id Будет проиндексирована лишь та часть таблицы, поле id которой меньше 1000.
KeyFieldsСписок имен полей, формирующих первичный ключ в наборе записей, полученном с помощью UrlQuery. Каждому документу, соответствующему одной записи, в индексе будет сопоставлен URL, компонетами которого являются значение директивы Name секции DataSource конфигурационного файла индексатора, имя секции конфигурационного файла источника данных, в которой описывается данный шаблон документа, значения полей, указанных в директиве KeyFields.
Пример: KeyFields: id
DocQuerySQL-запрос для получения конкретной записи базы. Запрос должен быть оформлен таким образом, чтобы в качестве результата запроса возвращалась ровно одна запись, содержащая данные для формирования документа. В запросе следует употребить параметры с именами $1-$N, где $k - порядковый номер поля в директиве KeyFields
Пример: DocQuery: SELECT id, m_time, title, content FROM mydata WHERE id=$1 Здесь m_time, title, content - имена полей таблицы mydata.
IndexFieldsСписок имен полей в наборе записей, полученном с помощью DocQuery, которые содержат данные документа. Значения этих полей будут подставлены в шаблон документа.