8.6. Программа hidedocs

Служебная программа hidedocs предназначена для оперативного удаления из результатов поиска указанных документов. При этом информация о документах остается в индексных файлах и может быть окончательно удалена при последующем переиндексировании.

Программа hidedocs может быть полезна в условиях, когда индексные файлы очень большие, так что слияние результатов после переиндексирования занимает много времени. Программа помечает указанные документы как недоступные и может работать без остановки поискового процесса.

8.6.1. Параметры командной строки

Вызов программы hidedocs осуществляется следующим образом:

  hidedocs [-n] hits indexprefix
Здесь в квадратных скобках указаны необязательные параметры.

indexprefix

Директория с индексными файлами, документы в которых надо пометить, дополненная префиксом имени файла. Например, если индексные файлы находятся в директории /yandex/workindex/, нужно указать /yandex/workindex/index.

hits

Путь к файлу с внутренними идентификаторами помечаемых документов. По умолчанию, этот файл имеет формат сохраненного запроса Яндекса, и может быть создан, например, программой savequery.

-n

Указывает, что файл hits с идентификаторами документов имеет текстовый формат. В этом случае файл hits должен содержать внутренние идентификаторы документов в десятичном формате, по одному на строку. Файл такого формата может быть получен с помощью вызова

  printkeys -w -k#url= indexkey indexinv
с последующим парсированием результата, например, с помощью такого скрипта на PERL:
       #!/usr/bin/perl
       use strict;
       while (<STDIN>) {
           if (/^#url="(.+)\s\d+\s\d+/) {
             # $1 содержит URL документа
           } elsif (/\[(\d+)\.\d+\.\d+\.\d+\]/) {
               print $1."\n";
           }
       }
       

8.6.2. Пример использования hidedoc

Пусть документы в индексе, расположенном в директории /yandex/workindex, имеют литеральный атрибут myattr, и имеется файл query следующего содержания:

       #myattr="value1" |
       #myattr="value2" |
       #myattr="value3"
       
Тогда последовательность вызовов
      savequery -y /yandex/workindex/index -q query -o /temp/hit
      hidedocs /temp/hit /yandex/workindex/index
      
делает недоступными в результатах поиска все документы, имеющие атрибут myattr со значениями value1, value2 или value3.

Copyright © 1997 – 2005 «Яндекс»