В результате индексирования каждому документу приписывается уникальное число - внутренний идентификатор документа, а содержимое и свойства документа запоминаются в индексных файлах indexkey и indexinv. Все слова, встречающиеся в массиве индексируемых документов, а также поисковые атрибуты и зоны запоминаются в файле indexkey и в дальнейшем называются ключами. Для каждого ключа в файле indexinv запоминается список словопозиций, или просто позиций. Каждая позиция включает внутренний идентификатор документа, номер предложения, в котором встретился ключ, номер слова в предложении, а также некоторый вес, назначенный данной позиции интерпретатором документного формата.
Служебная программа printkeys позволяет представить эту информацию в текстовом виде, пригодном для чтения человеком или дальнейшей обработки программами-скриптами. В зависимости от параметров командной строки программа выводит информацию либо только о ключах, либо о ключах и позициях.
В первом случае читается только файл indexkey. Каждому ключу соответствует одна выводимая строка, в которой печатается значение ключа. Далее в этой же строке может печататься через пробел число позиций, соответствующих ключу, длина в байтах упакованных позиций и смещение в файле indexinv до начала записи с позициями. Если указан параметр командной строки -0, число позиций не печатается. Смещение печатается только если указан параметр -p. Все числа печатаются в десятичном формате.
Второй случай реализуется, если указан один из параметров -w, -i, -l, -x. В этом случае для каждого ключа, в дополнение к указанной в предыдущем абзаце информации, печатаются позиции из файла indexinv, по одной позиции на строку. Формат, в котором печатается позиция, зависит от указанного параметра.
Вызов программы printkeys осуществляется следующим образом:
printkeys [-0|1] [-k key] [-e] [-p] [-w|x|l|i|f] [-s] [-m] [-c] [-t] [-o output] indexkey indexinvЗдесь в квадратных скобках указаны необязательные параметры.
Формат индекса
Значение по умолчанию: -1
Формат выводимых ключей
Печатать только ключи, начинающиеся с указанной подстроки. По умолчанию распечатываются все ключи.
Печатать ключи в том виде, как они хранятся в индексе (все буквы строчные; если слово начинается с прописной буквы, в конце слова прибавляется символ со значением 1). По умолчанию, ключи преобразуются к нужному регистру.
Печатать смещение в файле indexinv до начала записи с упакованными позициями, соответствующими ключу. По умолчанию смещение не печатается.
Формат выводимых позиций
Печатать позиции в формате "\t[D.S.W.R]\n", где D,S,W и R - соответственно идентификатор документа, номер предложения, номер слова в предложении и вес позиции в десятичном формате.
Печатать позиции в формате "\tP\n", где P - восьмибайтовое число в шестнадцатиричном формате. Идентификатор документа, номер предложения, номер слова в предложении и вес позиции занимают в этом числе определенное число бит, которое может зависеть от версии индексатора.
Печатать позиции в формате "\tD\tL\n", где D - идентификатор документа, а L - число в десятичном формате, в котором запакованы номер предложения, номер слова в предложении и вес позиции.
Печатать только внутренние идентификаторы документа в формате "\tD\n", где D - идентификатор документа в десятичном формате.
Печатать словопозиции в формате "\t[D.S.W.R.F]\n", D,S,W, R и F - соответственно идентификатор документа, номер предложения, номер слова в предложении, вес позиции в десятичном формате и номер словоформы в данном ключе.
Печатать статистику по словоформам
При печатати ключей показывать словоформы. Если опция отсутствует показывать леммы.
Параметры ввода-вывода
Выводить информацию в filename. По умолчанию вывод осуществляется в stdout.
Использовать символ табуляции в качестве разделителя полей.
При чтении индекса использовать мапирование. По умолчанию используется последовательное чтение. Имеет смысл, только если указан один из параметров -w, -i, -l, -x.